Matplotlib 101

Python 可視化中的經典

下載 Colab 同步學習

plt.plot()

歡迎來到 Matplotlib 101!

首先我們導入 matplotlib.pyplot ,縮寫成:plt

import matplotlib.pyplot as plt

接著我們使用最重要的函數,也是 pyplot 的最重要方法:.plot()

.plot() 將繪製x與y軸上的線條或標記。.show() 是每一次都會用的方法,目的是將圖形輸出。

plt.plot([1, 2, 3])
plt.show()

如果我們只給一組數值 [1,2,3],預設 matplotlib 會指定 [1,2,3] 成 y軸 數據,然而因為 Python 是零起始索引,所以 x軸 會被轉換成 [0,1,2]

為避免這種情況,下面我們指定兩組列表,他們會自動被判別為 x軸 與 y軸。

plt.plot([1,2,3], [1,4,9])
plt.show()

自訂樣式

matplotlib 之所以強大是因為它有極為複雜可碩性極高的自訂功能。

接下來我們來學習常用的函數。

color 顏色

指定顏色的方式十分直覺,color= 後面則是顏色的縮寫,例如藍色(blue):

plt.plot([1,2,3,4], color='b')
plt.show()

marker 標記

我們可以使用 marker= 指定標記得樣式,例如 '^' 就是直立三角形。

你可查閱官方所有可用的標記樣式。

plt.plot([1,2,3,4], color='b', marker='^')
plt.show()

Matplotlib 有極為方便的縮寫函數格式。以下我們將 顏色 和 標記樣式 更精簡的直接寫在一起。

請注意當我們寫在一起的時候,線條不見了是因為使用縮寫時我們覆寫了線條的樣式。別擔心,下面會學到如何修改線條樣式。

plt.plot([1,2,3,4], 'b^')
plt.show()

使用 'ro' 來指定顏色為紅色(red)、標記為正方形(square)。

plt.plot([1,2,3,4], 'ro')
plt.show()

linestyle

使用 linestyle= 來指定線條樣式,這裡我們使用虛線(dashed)。

你可查閱官方所有可用的線條樣式。

plt.plot([1,2,3,4], 'gs', linestyle='dashed')
plt.show()

可以使用 ls 取代 linestyle

plt.plot([1,2,3,4], 'gs', ls='dashed')
plt.show()

但如果想要最精簡,直接使用縮寫 'gs--'(橘色、方形、虛線),

plt.plot([1,2,3,4], 'gs--')
plt.show()

其實線條樣式的縮寫十分直覺,例如 '-.' 就是加點虛線。

plt.plot([1,2,3,4], 'gs-.')
plt.show()

linewidth & markersize

當然我們也可以調整線條的粗細 linewidth 和 標記大小 markersize

plt.plot([1,2,3,4], 'gs--', linewidth=2, markersize=12)
plt.show()

linewidth 可縮寫成 lw

plt.plot([1,2,3,4], 'c:', lw=10, markersize=5)
plt.show()

title, label & legend 標題、標籤和圖例

接下來我們使用方法 .title() 加入標題。

plt.plot([1,2,3,4], [1,2,3,4])
plt.title("No.1")
plt.show()

利用 .xlabel() .ylable() 來加入x軸y軸標籤。

plt.plot([1,2,3,4], [1,2,3,4])
plt.title("No.1")
plt.xlabel('Numbers')
plt.ylabel('Values')
plt.show()

利用 .legend() 加入圖例。

plt.plot([1,2,3,4], [1,2,3,4])
plt.title("No.1")
plt.xlabel('Numbers')
plt.ylabel('Values')
plt.legend(['just data'])
plt.show()

All together!

最後我們將以上所學從頭試一次!

為了繪圖方便我們先創造一個數 x.arange 是一個 NumPy 的方法,他會輸出指定間隔內均勻間隔的值。其中三個參數分別為:起始、結束(不包含)、間距。

import numpy as np

x = np.arange(0., 5., 0.4)
x
array([0. , 0.4, 0.8, 1.2, 1.6, 2. , 2.4, 2.8, 3.2, 3.6, 4. , 4.4, 4.8])

以下我們輸出三組線形圖,每兩組參數分別為 x軸 與 y軸(別擔心詳細的格式我們會在下一章說明)。

三條線的x軸y軸分別是:x xx x2x x3

plt.plot(x, x, x, x**2, x, x**3)
plt.show()

三條線的樣式分別為:藍色虛線(線條樣式)、紅色方形(標記樣式)、綠色三角形(標記樣式)

plt.plot(x, x, 'b--', x, x**2, 'rs', x, x**3, 'g^')
plt.show()

最後加入標題、標籤和圖例。

plt.plot(x, x, 'b--', x, x**2, 'rs', x, x**3, 'g^')
plt.title("No.2")
plt.xlabel('Numbers')
plt.ylabel('Values')
plt.legend(['A','B','C'])
plt.show()

太好了,學會這些看似基本但卻十分有用的功能,代表你已經離專業的數據分析師不遠了。

接下來我們將更進一步來學習繪圖樣貌的布局,我們下章見!

v1.0

請告訴我們

請告訴我們您的問題或勘誤建議。
您的意見是我們前進的動力,非常感激!