數(shù)據(jù)可視化
在我們開始的我們的可視化的之旅之前,需要簡單的介紹一些數(shù)據(jù)分析工具,我們的數(shù)據(jù)可視化的任務也是建立在數(shù)據(jù)分析的基礎之上。Python 的主要數(shù)據(jù)分析工具如下所示:
-
Numpy:這個是數(shù)據(jù)計算的工具,主要用來進行矩陣的運算,矢量運算等等。
-
Scipy:科學計算函數(shù)庫,主要用在學術領域,主要包含線性代數(shù)模塊,信號與圖像處理模塊,統(tǒng)計學模塊等等。
-
Sympy:數(shù)學符號計算庫
-
Pandas:包含了 numpy 的各種功能,并提供了更加強大的函數(shù),以及更加豐富的數(shù)據(jù)模型。
Pandas的主要數(shù)據(jù)結構為 Series 和 DataFrame。-
Series 可以當作是一般的數(shù)組,區(qū)別就是Series數(shù)組有索引的性質(zhì),這個和普通的數(shù)組十分不同。我們可以通過series.index來獲取index的值。
-
DataFrame 可以把它想像成數(shù)據(jù)的表格的概念,它是把一個或者多個Series按照邏輯合并后的二維數(shù)據(jù)結構。
-
接下來讓我們開始我們數(shù)據(jù)可視化之旅吧。
首選,我們來畫一張最基本的直方圖。
from matplotlib import pyplot //引入matplotlib庫進行繪制圖形
import numpy as np //引入numpy,來生成隨機數(shù)
x = np.arage(12)
y = np.random.rand(12)
labels = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec]
pyplot.bar(x,y, color='red', tick_label=labels) //繪制條形圖
pyplot.title('first chart')
plot.show()
上面這幅是條形圖,我們可以看到 x 軸是月份,總共分為 12 個月,縱軸則是每個月的數(shù)值在 0-1 之間的值。
x = np.random.randn(800)
pyplot.hist(x,150) //繪制直方圖
pyplot.title('second chart')
pyplot.show()
上面這幅是直方圖,默認的為藍色,數(shù)據(jù)在我們?nèi)‰S機數(shù)之后,基本上是呈現(xiàn)一個對稱分布的情況。
from mpl_toolkits.mplot3d import Axes3D //引入三維圖形包
pic = pyplot.figure()
ax = Axes3D(pic)
x = np.arange(-1, 3, 0.3) //x軸取值范圍
y = np.arange(-1, 3, 0.3 //y軸取值范圍
a, b = np.meshgrid(x,y) //繪制二維圖形
c = a**2 + b **2
ax.plot_surface(a,b,c, cmap= pyplot.get_cmap('rainbow')) //繪制三維圖
ax.set_zlim(-1, 10)
pyplot.title('last chart')
pyplot.show()
除了簡單的二維圖形,同樣,matplotlib 也可以很輕松的繪制三維圖形,上面的代碼就是我們繪制三位圖形的簡單版本,效果如下所示:
總結
爬蟲只是我們獲取數(shù)據(jù)的第一步,我們最終的目的是要讓數(shù)據(jù)服務于人類,因此,我們需要Numpy,Pandas 等數(shù)據(jù)分析工具分析數(shù)據(jù),然后使用 matplotlib 工具來繪制可視化圖形,從而讓我們的數(shù)據(jù)更加生動,更加被一般用戶所理解和使用。