使用Python繪製圖表大全總結

使用Python繪製圖表大全總結

在使用Python繪製圖表前,我們需要先安裝兩個庫檔案numpy和matplotlib。

Numpy是Python開源的數值計算擴充套件,可用來儲存和處理大型矩陣,比Python自身資料結構要高效;matplotlib是一個Python的影象框架,使用其繪製出來的圖形效果和MATLAB下繪製的圖形類似。

下面我通過一些簡單的程式碼介紹如何使用 Python繪圖。

一、圖形繪製

直方圖


importmatplotlib.pyplotasplt
importnumpyasnp
mu=100
sigma=20
x=mu sigma*np.random.randn(20000)# 樣本數量
plt.hist(x,bins=100,color='green',normed=True)# bins顯示有幾個直方,normed是否對資料進行標準化
plt.show()

條形圖


importmatplotlib.pyplotasplt
importnumpyasnp
y=[20,10,30,25,15]
index=np.arange(5)
plt.bar(left=index,height=y,color='green',width=0.5)
plt.show()

折線圖


importmatplotlib.pyplotasplt
importnumpyasnp
x=np.linspace(-10,10,100)
y=x**3
plt.plot(x,y,linestyle='--',color='green',marker='<')
plt.show()

散點圖


importmatplotlib.pyplotasplt
importnumpyasnp
x=np.random.randn(1000)
y=x np.random.randn(1000)*0.5
plt.scatter(x,y,s=5,marker='<')# s表示面積,marker表示圖形
plt.show()

餅狀圖


importmatplotlib.pyplotasplt
importnumpyasnp
labels='A','B','C','D'
fracs=[15,30,45,10]
plt.axes(aspect=1)#使x y軸比例相同
explode=[0,0.05,0,0]# 突出某一部分割槽域
plt.pie(x=fracs,labels=labels,autopct='%.0f%%',explode=explode)#autopct顯示百分比
plt.show()

箱形圖

主要用於顯示資料的分散情況。圖形分為上邊緣、上四分位數、中位數、下四分位數、下邊緣。外面的點時異常值


importmatplotlib.pyplotasplt
importnumpyasnp
np.random.seed(100)
data=np.random.normal(size=(1000,4),loc=0,scale=1)
labels=['A','B','C','D']
plt.boxplot(data,labels=labels)
plt.show()

二、影象的調整

1、23種點形狀


"."point","pixel"o"circle"v"triangle_down
"^"triangle_up"<"triangle_left">"triangle_right"1"tri_down
"2"tri_up"3"tri_left"4"tri_right"8"octagon
"s"square"p"pentagon"*"star"h"hexagon1"H"hexagon2
" "plus"x"x"D"diamond"d"thin_diamond

2、8種內建預設顏色的縮寫


b:blueg:greenr:redc:cyan
m:magentay:yellowk:blackw:white

3、4種線性

– 實線 –虛線 -.點劃線 :點線

4、一張圖上繪製子圖


importmatplotlib.pyplotasplt
importnumpyasnp
x=np.arange(1,100)
plt.subplot(221)#2行2列第1個圖
plt.plot(x,x)
plt.subplot(222)
plt.plot(x,-x)
plt.subplot(223)
plt.plot(x,x*x)
plt.subplot(224)
plt.plot(x,np.log(x))
plt.show()

5、生成網格


importmatplotlib.pyplotasplt
importnumpyasnp
y=np.arange(1,5)
plt.plot(y,y*2)
plt.grid(True,color='g',linestyle='--',linewidth='1')
plt.show()

6、生成圖例


importmatplotlib.pyplotasplt
importnumpyasnp
x=np.arange(1,11,1)
plt.plot(x,x*2)
plt.plot(x,x*3)
plt.plot(x,x*4)
plt.legend(['Normal','Fast','Faster'])
plt.show()