數據可視化
在我們開始的我們的可視化的之旅之前,需要簡單的介紹一些數據分析工具,我們的數據可視化的任務也是建立在數據分析的基礎之上。Python 的主要數據分析工具如下所示:
-
Numpy:這個是數據計算的工具,主要用來進行矩陣的運算,矢量運算等等。
-
Scipy:科學計算函數庫,主要用在學術領域,主要包含線性代數模塊,信號與圖像處理模塊,統計學模塊等等。
-
Sympy:數學符號計算庫
-
Pandas:包含了 numpy 的各種功能,并提供了更加強大的函數,以及更加豐富的數據模型。
Pandas的主要數據結構為 Series 和 DataFrame。-
Series 可以當作是一般的數組,區別就是Series數組有索引的性質,這個和普通的數組十分不同。我們可以通過series.index來獲取index的值。
-
DataFrame 可以把它想像成數據的表格的概念,它是把一個或者多個Series按照邏輯合并后的二維數據結構。
-
接下來讓我們開始我們數據可視化之旅吧。
首選,我們來畫一張最基本的直方圖。
from matplotlib import pyplot //引入matplotlib庫進行繪制圖形
import numpy as np //引入numpy,來生成隨機數
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 個月,縱軸則是每個月的數值在 0-1 之間的值。
x = np.random.randn(800)
pyplot.hist(x,150) //繪制直方圖
pyplot.title('second chart')
pyplot.show()
上面這幅是直方圖,默認的為藍色,數據在我們取隨機數之后,基本上是呈現一個對稱分布的情況。
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 也可以很輕松的繪制三維圖形,上面的代碼就是我們繪制三位圖形的簡單版本,效果如下所示:
總結
爬蟲只是我們獲取數據的第一步,我們最終的目的是要讓數據服務于人類,因此,我們需要Numpy,Pandas 等數據分析工具分析數據,然后使用 matplotlib 工具來繪制可視化圖形,從而讓我們的數據更加生動,更加被一般用戶所理解和使用。