在我們開始的我們的可視化的之旅之前,需要簡單的介紹一些數(shù)據(jù)分析工具哈蝇,我們的數(shù)據(jù)可視化的任務(wù)也是建立在數(shù)據(jù)分析的基礎(chǔ)之上。Python 的主要數(shù)據(jù)分析工具如下所示:
- Numpy:這個是數(shù)據(jù)計算的工具攘已,主要用來進(jìn)行矩陣的運算炮赦,矢量運算等等。
- Scipy:科學(xué)計算函數(shù)庫样勃,主要用在學(xué)術(shù)領(lǐng)域吠勘,主要包含線性代數(shù)模塊,信號與圖像處理模塊峡眶,統(tǒng)計學(xué)模塊等等剧防。
- Sympy:數(shù)學(xué)符號計算庫
-
Pandas:包含了 numpy 的各種功能,并提供了更加強大的函數(shù)辫樱,以及更加豐富的數(shù)據(jù)模型峭拘。
Pandas的主要數(shù)據(jù)結(jié)構(gòu)為 Series 和 DataFrame。- Series 可以當(dāng)作是一般的數(shù)組狮暑,區(qū)別就是Series數(shù)組有索引的性質(zhì)棚唆,這個和普通的數(shù)組十分不同。我們可以通過series.index來獲取index的值心例。
- DataFrame 可以把它想像成數(shù)據(jù)的表格的概念宵凌,它是把一個或者多個Series按照邏輯合并后的二維數(shù)據(jù)結(jié)構(gòu)。
接下來讓我們開始我們數(shù)據(jù)可視化之旅吧止后。
首選瞎惫,我們來畫一張最基本的直方圖。
from matplotlib import pyplot //引入matplotlib庫進(jìn)行繪制圖形
import numpy as np //引入numpy,來生成隨機(jī)數(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()
00831rSTgy1gcic2w1j1dj30hs0dcdfp.jpg
上面這幅是條形圖译株,我們可以看到 x 軸是月份瓜喇,總共分為 12 個月,縱軸則是每個月的數(shù)值在 0-1 之間的值歉糜。
x = np.random.randn(800)
pyplot.hist(x,150) //繪制直方圖
pyplot.title('second chart')
pyplot.show()
00831rSTgy1gcidh9hagzj30hs0dcaap.jpg
上面這幅是直方圖乘寒,默認(rèn)的為藍(lán)色,數(shù)據(jù)在我們?nèi)‰S機(jī)數(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 也可以很輕松的繪制三維圖形蚤氏,上面的代碼就是我們繪制三位圖形的簡單版本甘耿,效果如下所示:
00831rSTgy1gcidh9hagzj30hs0dcaap.jpg
總結(jié)
爬蟲只是我們獲取數(shù)據(jù)的第一步,我們最終的目的是要讓數(shù)據(jù)服務(wù)于人類竿滨,因此佳恬,我們需要Numpy,Pandas 等數(shù)據(jù)分析工具分析數(shù)據(jù),然后使用 matplotlib 工具來繪制可視化圖形于游,從而讓我們的數(shù)據(jù)更加生動毁葱,更加被一般用戶所理解和使用。