设定图表标签
使用 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 颜色...等 ( 参考:完整属性 )。 |
| loc | 摆放位置,默认 center,可设定 left 和 right。 |
| y | 垂直位置,默认 1 为最上方,0 在下方。 |
| pad | 距离图表的位置,默认 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()
xlabel()、ylabel()
xlabel()、ylabel() 方法可以设定 xy 轴的标签,除了必填的 label 文字参数,还有下列几个参数:
| 参数 | 说明 |
|---|---|
| fontdict | 文字设定字典档,可设定 fontsize 大小、fontweight 粗细、color 颜色...等 ( 参考:完整属性 )。 |
| loc | 摆放位置,xlabel() 默认 center,可设定 left 和 right,ylabel() 默认 center,可设定 top 和 bottom。 |
| pad | 距离图表的位置,默认 6。 |
| rotation | 旋转角度。 |
import matplotlib.pyplot as plt
x = [1,2,3,4,5]
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 ):
| 参数 | 说明 |
|---|---|
| axis | 针对哪个轴做设定,默认 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 则显示。 |
| axis | 显示哪个轴,默认 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()
legend()
如果绘图的时候,有加入 label 标签,就能使用 legend() 方法,在图表上产生数据对应的图例标签,,下方列出常用的参数 ( 更多参考:legend ):
| 参数 | 说明 |
|---|---|
| loc | 放置位置,默认 best 表示会自动出现在最适合的位置 ( 最不会遮住数据线条 )。 |
| fontsize | 字体大小。 |
| shadow | 是否有阴影,默认 False 无阴影,可设定 True 有阴影。 |
| facecolor | 底色。 |
| edgecolor | 边框颜色。 |
| title | 图例标题。 |
| title_fontsize | 图例标题字体大小。 |
import matplotlib.pyplot as plt
x = [1,2,3,4,5]
y = [5,4,3,2,1]
fig = plt.figure()
plt.plot(x, label='x')
plt.plot(y, label='y')
plt.legend(
loc='best',
fontsize=20,
shadow=True,
facecolor='#ccc',
edgecolor='#000',
title='test',
title_fontsize=20)
plt.show()
微信扫码关注
抖音扫码关注