數據可視化,是關於數據視覺表現形式的科學技術研究。其中,這種數據的視覺表現形式被定義爲,一種以某種概要形式抽提出來的信息,包括相應信息單位的各種屬性和變量。
Python有很多非常優秀易用的數據可視化的庫,作爲入門在這裏使用Python的matplotlib,事實上Python中很多可視化庫都是基於matplotlib開發的。
Matplotlib是Python中最常用的可視化工具之一,可以非常方便地創建海量類型地2D圖表和一些基本的3D圖表,可根據數據集(DataFrame,Series)自行定義x,y軸,繪製圖形(線形圖,柱狀圖,直方圖,密度圖,散佈圖等等),能夠解決大部分的需要。Matplotlib中最基礎的模塊是pyplot。
Matplotlib基本繪圖流程:
基本函數:
繪製散點圖:
import numpy as np
import matplotlib.pyplot as plt
x = np.linspace(0,2*np.pi,100)
y = np.sin(x) + np.random.rand(100)
plt.figure(figsize=(10,5))
plt.title('sin散點圖')
plt.scatter(x,y)
plt.show()
繪製折線圖:
x = np.linspace(0,2*np.pi,100)
y = np.sin(x) + np.random.rand(100)
plt.figure(dpi=120) # dpi爲像素
plt.title('折線圖')
plt.plot(x,y,'r--')
plt.plot(x,np.sin(x),'g')
plt.legend(['折線','sin曲線'])
plt.show()
繪製直方圖:
x = range(10)
np.random.seed(123)
y1 = np.random.random(10)
y2 = np.random.random(10)
plt.bar(x,y1,facecolor='r')
plt.bar(x,-y2,facecolor='g')
for i,j in zip(x,y1): # zip() 打包爲元祖的列表
plt.text(i,j+0.05,'%.2f'%j,ha='center',va='bottom')
for i,j in zip(x,y2):
plt.text(i,-j-0.02,'%.2f'%j,ha='center',va='top')
plt.title(r'$\sigma_i=15$') # 可寫方程表達式
plt.ylim(-1.2,1.2)
plt.show()
餅圖:
z = np.ones(10)
plt.figure(figsize=(5,5))
plt.pie(z,autopct='%.2f%%',explode=[0.1]*2+[0]*8,labels=list('ABCDEFGHIJ'),labeldistance=1.2)
plt.show()