添加链接
link管理
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接

使用 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()

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