天天看點

matplotlib繪圖技巧詳解(二)

↑ 關注 + 星标 ~ 有趣的不像個技術号

每晚九點,我們準時相約

大家好,我是黃同學

我們之前已經講述了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")
           

複制

結果如下:

matplotlib繪圖技巧詳解(二)

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^:")
           

複制

結果如下:

matplotlib繪圖技巧詳解(二)

3)顔色、線條樣式和點标記大全

① 顔色大全

matplotlib繪圖技巧詳解(二)

② 線條樣式大全

  • ‘-’ 直線
  • ‘–’ 虛線
  • ‘-.’ 點畫線
  • ‘:’ 點線

③ 點标記大全

matplotlib繪圖技巧詳解(二)

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)
           

複制

結果如下:

matplotlib繪圖技巧詳解(二)

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")
           

複制

結果如下:

matplotlib繪圖技巧詳解(二)

③ 在繪制的時候通過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")
           

複制

結果如下:

matplotlib繪圖技巧詳解(二)

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))
           

複制

結果如下:

matplotlib繪圖技巧詳解(二)

② 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年各季度銷售額對比圖")
           

複制

結果如下:

matplotlib繪圖技巧詳解(二)

③ 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)
           

複制

結果如下:

matplotlib繪圖技巧詳解(二)

④ 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)
           

複制

結果如下:

matplotlib繪圖技巧詳解(二)

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繪圖技巧詳解(二)

未完待續,matplotlib繪圖技巧詳解更新ing...

matplotlib繪圖技巧詳解(二)