Matpoltlib 1


layout: post title: ‘從一副圖的繪製瞭解繪圖的常用操作’ subtitle: ‘’ date: 2019-05-29 categories: 數據分析 cover: ‘’ tags: 數據分析 ​—

從一副圖的繪製瞭解繪圖的常用操作

1. 繪製一副普通的曲線圖

默認的plot(x,y,format_string,**kwargs)方法就會繪製一副曲線圖,他的參數如下

  • x:x軸座標的數據
  • y:y軸的數據
  • format_string:曲線格式化字符串,曲線是利用字符串來設置樣式的,可以傳入顏色,也可以傳入線的樣式,還可以兩個組合一起傳入
  • **kwargs:可以是另一組同樣的參數,也可以是其他支持的參數
x = np.linspace(-np.pi,np.pi,256)
plt.plot(x,np.sin(x))
plt.plot(x,np.cos(x))

上面3行代碼就可以繪製一個圖了

下載

還可以更短

plt.plot(x,np.sin(x),'b-',x,np.cos(x),'r-')

img

這樣一下就可以繪製兩組甚至多組數據

2. 修改顏色和線寬

顏色可以使用format_string來修改,線寬可以使用另外一個參數lw來修改,lw其實就是linewidth的縮寫,可以改成這樣

plt.plot(x,np.sin(x),'b-',lw=3)
plt.plot(x,np.cos(x),'r-',lw=3)

img

圖片就變成這樣了,matplotlib支持的顏色如下,也可以使用argb來配色

顏色字符 說明 顏色字符 說明
‘b’ blue 藍色 ‘y’ yellow 黃色
‘g’ green 綠色 ‘k’ black 黑色
‘r’ red 紅色 ‘w’ white 白色
‘c’ cyan 青綠色 ‘#rrggbb’ RGB顏色
‘m’ magenta 洋紅色 ‘0.8’ 灰度值

支持的線的風格如下

樣式字符 說明 樣式字符 說明
‘-‘ 實線風格 ‘–’ 虛線風格
‘-.’ 點劃線風格 ‘:’ 虛線風格
‘’ ‘ ‘ 無線條

支持的標記風格如下

標記字符 說明 標記字符 說明
‘.’ 點標記 ‘,’ 像素標記
‘o’ 圓圈標記 ‘v’ 下三角標記
‘^’ 上三角標記 ‘<’ 左三角標記
‘>’ 右三角標記 ‘1’ 下花三角標記
‘2’ 上花三角標記 ‘3’ 左花三角標記
‘4’ 右花三角標記 ‘s’ 正方形標記
‘p’ 五邊形標記 ‘*’ 星標記
‘h’ 六邊形1標記 ‘H’ 六邊形2標記
‘+’ 十字標記 ‘x’ x標記
‘D’ 菱形標記 ‘d’ 瘦菱形標記
垂直線標記 ‘_’ _標記

處理支持使用format_string的方式設置線的樣式,他還支持單獨設置樣式顏色對應color參數,線的樣式linestyle對應ls,標記對應marker

#plt.plot(x,np.sin(x),'b_',marker='o')
#plt.plot(x,np.cos(x),'r:',marker='^')

plt.plot(x,np.sin(x),color='b',ls='-',marker='o')
plt.plot(x,np.cos(x),color='r',ls='--',marker='^')

img

3. 調整座標軸的範圍

調整座標軸一般要用到xlim()ylim()函數,他們都傳入兩個參數分別x軸的最大值和最小值,y軸的最大值和最小值,

plt.plot(x,np.sin(x),color='b',ls='-')
plt.plot(x,np.cos(x),color='r',ls='--')

plt.xlim(-4,4)
plt.ylim(-2,2)

就可以得到下面這幅圖

img

4. 修改軸刻度

修改軸刻度使用xticksyticks,他們可以傳入一個列表(只要可迭代就行)的一個數據,然後matplotlib會自動計算設置的刻度位置,如

plt.plot(x,np.sin(x),color='b',ls='-')
plt.plot(x,np.cos(x),color='r',ls='--')

plt.xlim(-4,4)
plt.ylim(-2,2)
plt.xticks([-np.pi,-np.pi/2,0,np.pi/2,np.pi])

img

就可以設置x的刻度

與此同時可以使用別名來代表x軸的位置,這需要傳入兩個列表,如

#plt.plot(x,np.sin(x),'b_',marker='o')
#plt.plot(x,np.cos(x),'r:',marker='^')

plt.plot(x,np.sin(x),color='b',ls='-')
plt.plot(x,np.cos(x),color='r',ls='--')

plt.xlim(-4,4)
plt.ylim(-2,2)
plt.xticks([-np.pi,-np.pi/2,0,np.pi/2,np.pi],[r'$-\pi$',r'$-\frac{\pi}{2}$','0',r'$\frac{\pi}{2}$',r'$\pi$'])

這樣可以使用更加常見的的方式代替x軸座標

5. 設置圖例

設置圖例在多個圖時候顯得尤爲重要,設置圖例一般使用legend()函數來實現,當然也可以在繪圖的時候加入一個label參數來實現

plt.plot(x,np.sin(x),color='b',ls='-',label='sin')
plt.plot(x,np.cos(x),color='r',ls='--',label='cos')

plt.xlim(-4,4)
plt.ylim(-2,2)
plt.xticks([-np.pi,-np.pi/2,0,np.pi/2,np.pi],[r'$-\pi$',r'$-\frac{\pi}{2}$','0',r'$\frac{\pi}{2}$',r'$\pi$'])
plt.legend()

img

當然也可以這樣

plt.plot(x,np.sin(x),color='b',ls='-')
plt.plot(x,np.cos(x),color='r',ls='--')

plt.xlim(-4,4)
plt.ylim(-2,2)
plt.xticks([-np.pi,-np.pi/2,0,np.pi/2,np.pi],[r'$-\pi$',r'$-\frac{\pi}{2}$','0',r'$\frac{\pi}{2}$',r'$\pi$'])
plt.legend(['sin','cos'],loc='best')

這種的效果跟上面的效果是一樣的,只是要注意順序

??正文結束??
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章