使用 matplotlib 繪製圖表時,可以透過設定圖表的標籤,顯示 xy 軸的文字、xy 軸的位置或圖表標題,這篇教學會介紹如何設定圖表的標籤。
本篇使用的 Python 版本為 3.7.12,
所有範例可使用
Google Colab
實作
,不用安裝任何軟體 ( 參考:
使用 Google Colab
)
下方列出使用 plt 設定圖表標籤常用的方法,如果是 subplots() 方法建立的座標軸 axes,則前方要加上 set_,例如 title() 會變成 set_title()。
title()
label
標題文字。
xlabel()
、
ylabel()
label
xy 軸說明文字。
xlim()
、
ylim()
min, max
xy 軸邊界值。
xticks()
、
yticks()
ticks
xy 軸刻度。
tick_params()
刻度顯示設定。
grid()
網格設定。
legend()
圖例標籤設定。
title()
title() 方法可以
設定圖表的標題文字
,下面兩種方法,會建立相同的圖表,如果是使用 subplots() 的方法,
改用 set_title() 方法設定標題
。
import matplotlib.pyplot as plt
x = [1,2,3,4,5]
fig = plt.figure()
plt.plot(x)
plt.title('test') # 設定 title
plt.show()
x = [1,2,3,4,5]
fig, ax = plt.subplots()
ax.set_title('test') # 設定 title
ax.plot(x)
plt.show()
如果有多個子圖表,title() 方法會設定子圖表的標題,主標題則使用 suptitle() 方法設定。
x = [1,2,3,4,5]
y = [5,4,3,2,1]
fig = plt.figure()
plt.subplot(121)
plt.plot(x)
plt.title('xxx') # 設定子圖表 title
plt.subplot(122)
plt.plot(y)
plt.title('yyy') # 設定子圖表 title
plt.suptitle('test') # 設定圖表主 title
plt.show()
x = [1,2,3,4,5]
y = [5,4,3,2,1]
fig, ax = plt.subplots(1,2)
plt.suptitle('test') # 設定圖表主 title
ax[0].set_title('xxx') # 設定子圖表 title
ax[1].set_title('yyy') # 設定子圖表 title
ax[0].plot(x)
ax[1].plot(y)
plt.show()
使用 title() 設定標題時,除了必填的 label 文字參數,還有下列幾個參數:
fontdict
文字設定字典檔,可設定 fontsize 大小、fontweight 粗細、color 顏色...等 ( 參考:
完整屬性 )。
擺放位置,預設 center,可設定 left 和 right。
垂直位置,預設 1 為最上方,0 在下方。
距離圖表的位置,預設 6。
import matplotlib.pyplot as plt
x = [1,2,3,4,5]
fig = plt.figure()
plt.plot(x)
plt.title('test',{'fontsize':20,'color':'red'}, loc='left', pad=10) # 設定 title 文字樣式
plt.show()
同一個圖表可以同時出現左、右、中三個位置的標籤。
import matplotlib.pyplot as plt
x = [1,2,3,4,5]
fig = plt.figure()
plt.plot(x)
plt.title('right',loc='right')
plt.title('test',loc='center')
plt.title('left',loc='left')
plt.show()
fig = plt.figure()
plt.plot(x)
plt.xlabel('x-axis',{'fontsize':20,'color':'red'}) # 設定 x 軸標籤
plt.ylabel('y-axis',{'fontsize':20,'color':'green'}) # 設定 y 軸標籤
plt.show()
xlim()、ylim()
xlabel()、ylabel() 方法可以設定 xy 軸邊界值,如果沒有設定,預設採用資料的最大值和最小值。
import matplotlib.pyplot as plt
x = [1,2,3,4,5]
fig = plt.figure()
plt.plot(x)
plt.xlim(0,10) # 設定 x 軸邊界為 0~10
plt.ylim(0,10) # 設定 y 軸邊界為 0~10
plt.show()
xticks()、yticks() 方法可以設定 xy 軸的刻度,參數包含 ticks 和 labels 兩種,使用串列作為資料型態,參數支援文字屬性 ( 參考:完整屬性 )。
import matplotlib.pyplot as plt
x = [1,2,3,4,5]
fig = plt.figure()
plt.plot(x)
plt.xticks([0,2,4,6,8],['a','b','c','d','e'],fontsize=20) # 設定 x 軸刻度為 2,4,6,8,10 對應的 a,b,c,d,e
plt.yticks([0,2,4,6,8],fontsize=20) # 設定 x 軸刻度為 2,4,6,8,10
plt.show()
tick_params()
tick_params() 方法可以設定刻度的顯示樣式,下方列出常用的參數 ( 更多參考:tick_params ):
針對哪個軸做設定,預設 both,可以設定 x 或 y。
color
刻度顏色。
colors
刻度和刻度文字的顏色。
width
刻度寬度。
length
刻度長度。
direction
刻度位置,預設 out,可以設定 in 或 inout。
import matplotlib.pyplot as plt
x = [1,2,3,4,5]
fig = plt.figure()
plt.plot(x)
plt.tick_params(
axis='x',
color='red',
width=5,
length=10,
direction='inout',
colors='red')
plt.show()
grid()
grid() 方法可以設定圖表的網格,下方列出常用的參數 ( 更多參考:grid ):
visible
是否顯示網格,預設 False 不顯示,設定 True 則顯示。
顯示哪個軸,預設 both,可以設定 x 或 y。
which
顯示哪種隔線,預設 both,可以設定 major 或 minor。
color
隔線顏色。
dashes
虛線,內容使用 ( 長度, 間隔 )。
linestyle
隔線樣式,使用 -、--、-.、: 等線條格式。
linewidth
隔線粗細,預設 1。
alpha
隔線透明度,預設 1 完全不透明,設定 0 完全透明。
import matplotlib.pyplot as plt
x = [1,2,3,4,5]
fig = plt.figure()
plt.plot(x)
plt.grid(
visible=True,
axis='x',
color='#c00',
dashes=(3,3),
linewidth=5,
alpha=0.2)
plt.show()