如何繪製線條

matplotlib.pyplot模組可使用plot()方法進行繪製線條,接著再呼叫show()方法來顯示繪圖結果,plot()方法語法如下:

plt.plot(x座標串列, y座標串列, [參數1, 參數2, …])

plot()方法除了x座標串列和y座標串列為必要參數之外,還有下表五個常用的選擇性參數可以使用。

plot 方法參數說明
color設定線條的顏色,預設值為藍色。
linewidth 或 lw設定線條的寬度,預設值為 1.0。
linestyle 或 ls設定線條的顯示樣式,常用的設定值有「-」實線、「--」虛線、「-.」虛點線、「:」點線,預設值為「-」實線。
label設定圖例代表的名稱。此屬性必須執行 legend() 方法才會顯示指定的圖例名稱。
marker設定線條端點的標記樣式。常用屬性值如下:
1. ".", "o", "*":依序代表點、圓、星樣式。
2. "v", "^":依序代表正倒三角形。
3. "<", ">":依序代表左右三角形。
4. "s":矩形。
5. "p":五角形。
6. "h", "H":依序代表小六邊形與大六邊形。
7. "d", "D":依序代表小鑽石形與大鑽石形。
8. "+""x":依序代表 + 與 X。
markersize 或 ms設定線條端點的標記大小。

[簡例] (檔名:plt01.py)
練習使用 matplotlib.pyplot模組的 plot()方法製 2016年~2022年的產品銷售量
圖表,指定圖例說明如下:

  1. listX座標串列由 2016年〜2022年。
  2. listY座標串列由0〜100000
  3. 設定線條顏色為藍色、以虛點線顯示、線條寬度為4,線條代表圖例名稱為 Sales volume

[結果]

說明

  1. 3,4行: listXlistY座標串列只設定兩個資料,但圖表座標間距會自動分配。
  2. 6行: 使用plot()方法進行繪製線條,依據listXlistY的數值,並指定線條顏色為藍色、線條以虛點線顯示、線條寬度為4,線條代表圖例名稱為「Sales volume」。
  3. 7行:執行legend()方法,才能顯示label 所指定的線條代表圖例名稱 Sales volume
  4. 8行:執行show()方法顯示繪圖結果。

IPython Console 無法顯示圖表的解決方式

當執行繪製圖表程式時,若出現下圖虛框處訊息且未出現圖表,這是因為Spyder預設的IPython Console視窗(主控台)不會顯示圖表。

要讓IPython Console視窗(主控台)顯示圖表操作步驟如下:

  1. Step1 開啟Plots視窗
    執行功能表的【Window/Panes/Plots】項目開啟Plots 視窗。(讓Plots 項目前有勾選表示已開啟該視窗。)

  2. Step2 取消Mute inline plotting 功能
    接著切換到Plots 視窗,並按下該視窗功能表並取消「Mute inline plotting」功能,最後再執行程式即可在IPython Console 視窗顯示圖表。

如何在圖表中顯示中文

matplotlib預設無法在圖表中顯示中文,當在上例圖例說明指定「歷年銷售量」,結果會如下圖虛框處無法顯示中文:

若要解決中文顯示的問題,只要在程式碼開頭撰寫如下敘述,將圖表預設使用的字體換成標楷體(字型的英文名DFKai-SB)即可:

font = {'family' : 'DFKai-SB'}  
plt.rc('font', **font) # pass in the font dict as kwargs

[簡例] 延續上例將線條的圖例說明改成「歷年銷售量」,並可正常顯示中文。 (檔名:plt02.py)

[結果]

Plots 視窗右邊會出現繪製圖表的縮圖,在縮圖上按一下可以切換顯示的圖表,按右鍵會出現快顯功能表,可以執行指令來管理圖表。

如何設定圖表標題、座標標題與座標範圍

圖表另外還提供下表的方法讓開發人員可以設定圖表標題、座標標題與座標範圍等,讓瀏覽者可能瞭解圖表所代表的意義。

matplotlib.pyplot 模組方法說明
title設定圖表標題。
xlabel設定 x 座標標題。
ylabel設定 y 座標標題。
xlim設定 x 座標範圍。寫法:plt.xlim(起始值, 終止值)
ylim設定 y 座標範圍。寫法:plt.ylim(起始值, 終止值)
grid(True)設定是否顯示網格線,預設不顯示網路線。
顯示網格線寫法:plt.grid(True)
不顯示網格線寫法:plt.grid(False)

[簡例] 繪製 2017~2022年的 iPhone 歷年銷售量的圖表。圖表X座標(年)範圍 2016~2023年,Y座標(銷售量)範圍0~110000,線條端點樣式設為*,指定圖表標題為「手機歷年銷售量」。 (檔名:plt03.py)

[結果]

[簡例] (檔名:plt04.py)

繪製2017~2022年手機的歷年銷售量圖表,產品有iPhoneASUSGoogle;線條模式依序設為虛線(—)、虛點線(-.)與實線(-);線條顏色依序指定為藍、紅、綠;線端點樣式依序為圓、星、矩形。圖表X座標(年)範圍 2016-2023年,Y座標(銷售量)範圍0~110000,指定圖表標題為「手機歷年銷售量」。

[結果]

說明

  1. 5行:指定listIYearX串列當做2017~2022年。
  2. 6~7行:畫iPhone手機歷年銷售量的線條。
  3. 9-10行:畫ASUS手機歷年銷售量的線條圖。
  4. 12~13行:畫Google手機歷年銷售量的線條圖。

相關主題與延伸閱讀