↑ 關注 + 星标 ~ 有趣的不像個技術号
每晚九點,我們準時相約
大家好,我是黃同學
我們之前已經講述了matplotlib的繪圖原理,陸續會更新繪圖技巧、相關圖形繪制。
《matplotlib繪圖的核心原理》
《matplotlib繪圖技巧詳解(一)》
1、顔色、點标記與線型設定
1)常用的參數名:小括号中都是簡寫
- color©:線條顔色。
- linestyle(ls):線條形狀。
- linewidth(lw):線寬。
- marker:點标記形狀。
- markersize(ms):點标記的大小。
- markeredgecolor(mec):點邊緣顔色。
- markeredgewidth(mew):點邊緣寬度。
- markerfacecolor(mfc):點的顔色。
① 舉例如下
plt.plot([1, 2, 3, 4], [5, 6, 7, 8], c="g", ls="--", lw=2,
marker="o", ms=8, mec="g", mew=5, mfc="r")
複制
結果如下:

2)顔色、點标記與線型可以使用一個參數設定
① 格式
格式:顔色點标記樣式線條樣式
注意:這三者之間不需要添加任何其他東西;
舉例:ro–
② 常用顔色、點标記和線型
顔色:藍色"b" 綠色"g" 紅色"r" 青色"c" 品紅"m" 黃色"y" 黑色"k" 白色"w"
點标記:點"." 像素"," 圓"o" 方形"s" 三角形"^"
線型:直線"-" 虛線"–" 點線":" 點畫線"-."
舉例如下:
plt.plot([1,2,3,4,5], [2,4,6,8,10], "m^:")
複制
結果如下:
3)顔色、線條樣式和點标記大全
① 顔色大全
② 線條樣式大全
- ‘-’ 直線
- ‘–’ 虛線
- ‘-.’ 點畫線
- ‘:’ 點線
③ 點标記大全
2、透明度設定
1)說明
在繪制圖像時,我們可以通過alpha參數來控制圖像的透明度,值在0 ~ 1之間。0為完全透明,1為不透明。
2)舉例說明
plt.plot([1,3,5,7],[4,9,6,8],marker="s",alpha=0.2)
plt.plot([1,2,3,4,5], [2,4,6,8,10],marker="o",alpha=0.5)
複制
結果如下:
3、圖例設定
1)圖例作用
在繪制多條線時,可以設定圖例來标注每條線所代表的含義,使圖形更加清晰易懂。關于圖例設定可以參考如下文章:https://blog.csdn.net/chichoxian/article/details/101058046
2)plt.legend()設定圖例的2種方式
① legend函數中的常用參數
- loc:指定圖例的位置。預設為best。也可以指定坐标(元組),基于圖像左下角計算。
- title:設定圖例的标題。
- ncol:圖例顯示的列數,預設為1列。
- frameon:設定是否顯示圖例的邊框。True(預設值)顯示,False不顯示。
例如:plt.legend(loc=(1,0.9))傳入一個指定坐标,調整圖例的位置,以免圖例覆寫了圖形。
② 調用plt的legend函數,傳遞一個标簽數組,指定每次plot圖形的标簽
plt.plot([1,3,5,7],[4,9,6,8],"ro--")
plt.plot([1,2,3,4,5], [2,4,6,8,10],"gs-.")
plt.legend(["2016年","2017年"],loc="best")
複制
結果如下:
③ 在繪制的時候通過label參數指定圖例中顯示的名稱,然後調用legend函數生成圖例
plt.plot([1,3,5,7],[4,9,6,8],"ro--",label="2016年")
plt.plot([1,2,3,4,5], [2,4,6,8,10],"gs-.",label="2017年")
plt.legend(loc="upper right")
複制
結果如下:
3)legend函數常用參數的詳細說明
- loc:指定圖例的位置。預設為best。也可以指定坐标(元組),基于圖像左下角計算。
- title:設定圖例的标題。
- ncol:圖例顯示的列數,預設為1列。
- frameon:設定是否顯示圖例的邊框。True(預設值)顯示,False不顯示。
① loc參數:設定圖例的擺放位置
該參數用于指定圖例的擺放位置。預設是best,還有upper、down、left和right。一共有四種組合形式"upper left"、“upper right”、“down left"和"down right”。也可以為該參數指定一個坐标"元組",坐标的值是基于目前坐标原點的比例。
舉例如下:
plt.plot([1,3,5,7],[4,9,6,8],"ro--")
plt.plot([1,2,3,4,5], [2,4,6,8,10],"gs-.")
plt.legend(["2016年","2017年"],loc=(0.5,0.8))
複制
結果如下:
② title參數:為圖例設定标題
舉例如下:
plt.plot([1,3,5,7],[4,9,6,8],"ro--")
plt.plot([1,2,3,4], [2,4,6,8],"gs-.")
plt.legend(["2016年","2017年"],loc="best",title="圖例的标題")
plt.title("2016-2017年各季度銷售額對比圖")
複制
結果如下:
③ ncol參數:圖例顯示的列數
plt.plot([1,3,5,7],[4,9,6,8],"ro--")
plt.plot([1,2,3,4], [2,4,6,8],"gs-.")
plt.legend(["2016年","2017年"],loc="best",ncol=2)
複制
結果如下:
④ frameon參數:設定是否顯示圖例的邊框
plt.plot([1,3,5,7],[4,9,6,8],"ro--")
plt.plot([1,2,3,4], [2,4,6,8],"gs-.")
plt.legend(["2016年","2017年"],loc="best",ncol=2,frameon=False)
複制
結果如下:
4、網格設定
可以通過plt的grid方法來設定是否顯示網格。True為顯示,False不顯示。
文法參數:
- ax.grid(color=, linestyle=, linewidth=)
- color:設定網格線顔色。
- axis:設定網格線顯示x,y或者全部顯示(x,y,both)。
- linestyle:設定網格線形狀。
- linewidth:設定網格線寬度。
舉例如下:
plt.plot([1,3,5,7],[4,9,6,8],"ro--")
plt.grid(True,c="g",ls="-",lw=5)
複制
結果如下:
未完待續,matplotlib繪圖技巧詳解更新ing...