Matplotlib是python的繪圖庫,用來數據可視化或者結果分析都具有很大的幫助
一、matplotlib安裝
如果在anaconda環境下可以直接用conda install matplotlib的命令安裝;
普通的pip環境可以通過pip install matplotlib進行安裝
安裝之後輸入python進入py環境後執行import matplotlib命令,如果沒有報錯,恭喜安裝成功
二、創建圖
1. 線型圖
import matplotlib.pyplot as plt
import numpy as np
%matplotlib inline
x=np.random.randn(30)
plt.plot(x,"r--o")
輸出如下圖
前兩行導入包,第三行設置直接在notebook中顯示(本人用的jupyter notebook),然後固定了隨機種子,方便對結果復現,然後生成了30個隨機值,最後通過核心代碼plt.plot(x,“r–o”)繪製,參數屬性如下:
第一個參數是線條顏色
- b:藍色線條
- g:綠色線條
- r:紅色線條
- c:藍綠色線條
- m:洋紅色線條
- y:黃色線條
- k:黑色線條
- w:白色線條
第二個參數是設置連線形態
- -:實線
- –:虛線
- -.:點實線,-·-·-·-·-·-·這種
- :(冒號):點虛線…這種
第三個參數是數據點形狀
- o:圓形
- *:星形
- +:加號
- x:x形
a=np.random.randn(35)
b=np.random.randn(35)
c=np.random.randn(25)
d=np.random.randn(40)
plt.title("TEST")
plt.xlabel("X")
plt.ylabel("Y")
A,=plt.plot(a,"r--o")
B,=plt.plot(b,"g-*")
C,=plt.plot(c,"k-.+")
D,=plt.plot(d,"y:x")
plt.legend([A,B,C,D],["A","B","C","D"])
其中title方法是設置標題,xlabel,ylabel是設置橫軸縱軸標籤,通過legend傳入對應的兩個列表,匹配成圖例
2.子圖
設置多幅圖像同時顯示
%matplotlib inline
a=np.random.randn(35)
b=np.random.randn(35)
c=np.random.randn(25)
d=np.random.randn(40)
fig=plt.figure()
ax1=fig.add_subplot(2,2,1)
ax2 = fig.add_subplot(2,2,2)
ax3=fig.add_subplot(2,2,3)
ax4=fig.add_subplot(2,2,4)
A,=ax1.plot(a,"r--o")
ax1.legend([A],["A"])
B,=ax2.plot(b,"b-*")
ax2.legend([B],["B"])
C,=ax3.plot(c,"k:x")
ax3.legend([C],["C"])
D,=ax4.plot(d,"y-.+")
ax4.legend([D],["D"])
首先通過plt的figure方法實例化一個子圖,然後通過add_subplot向fig實例中添加子圖,參數以(2,2,1)爲例,前兩個數代表劃分成2行2列展示4幅圖片,最後的1設置當前圖片爲第一幅
注意子圖裏沒有xlabel等屬性
3. 散點圖
%matplotlib inline
a=np.random.randn(35)
b=np.random.randn(35)
c=np.random.randn(25)
d=np.random.randn(40)
plt.scatter(b,a,c="r",marker="*",label="(X,Y)")
plt.title("TEST")
plt.xlabel("X")
plt.ylabel("Y")
plt.legend(loc=0)
plt.show()
核心代碼plt.scatter(x,y,c=“g”,marker=“o”,label="(X,Y)")這裏前兩個參數x,y必須是等維度的,隨後參數c指定顏色,參數列表同線型圖,marker指定點形狀,參數列表同線型圖,label指定圖例,
隨後的legend指定圖例位置,loc=0自動匹配最好的位置,1位於右上角,2位於左上角,3位於左下角等等等等各種位置
4.直方圖
%matplotlib inline
a=np.random.randn(35)
b=np.random.randn(35)
c=np.random.randn(25)
d=np.random.randn(40)
plt.hist(a,bins=30,color="b")
plt.title("TEST")
plt.xlabel("X")
plt.ylabel("Y")
plt.show()
核心代碼plt.hist(a,bins=30,color=“b”)第一個參數指定數據來源,bins指定條紋數量,color指定顏色,參數列表同線型圖
5. 餅圖
labels=['you','me','him']
a=12.453
b=45.345
c=100-a-b
sizes=[a,b,c]
plt.pie(sizes,explode=(0,0,0.1),labels=labels,autopct='%1.2f%%',startangle=30)
plt.axis('equal')
plt.title("TEST")
plt.show
核心代碼plt.pie(sizes,explode=(0,0,0.1),label=labels,autopct=’%1.1f%%’,startangle=30)第一個參數sizes指定數據來源,分別佔的比例,explode指定間隔,示例中的前兩個是0,最後是0.1所以第三部分被突出顯示,labels指定圖例,autopct指定數據格式,startangle指定開始繪製時同x軸的夾角,默認0度(邊界水平)
plt.axis(“equal”)不可缺少,表示x,y軸刻度保持相同,這樣圖纔是圓形