设定座标轴刻度文字
matplotlib 可以使用多种方法建立图表 ( plt、ax...等 ),但在每种方法中设定座标轴文字方式都有所不同,这篇教学会整理并介绍四种设定座标轴刻度文字的方式。
本篇使用的 Python 版本为 3.7.12,所有范例可使用 Google Colab 实作,不用安装任何软件 ( 参考:使用 Google Colab )
import matplotlib
要进行本篇的范例,必须先加载 matplotlib 函数库的 pyplot 模组,范例将其独立命名为 plt。
import matplotlib.pyplot as plt
设定座标轴刻度文字的方式
下方列出四种设定座标轴刻度文字的方式。
| 方式 | 说明 |
|---|---|
| plt.xticks() | 针对使用 plt.subplot() 建立的图表,同性质还有 yticks()、zticks()。 |
| ax.set_xticklabels() | 使用时需要搭配 plt.xticks() 方法,同性质还有 set_yticklabels()、set_zticklabels()。 |
| plt.setp(ax.get_xticklabels()) | 透过 ax.get_xticklabels() 取得座标轴标签对象后,进行对应的属性设定,同性质还有 ax.get_yticklabels()、ax.get_zticklabels()。 |
| ax.tick_params(axis='x') | 针对某个座标轴做完整的属性设定,同性质还有 axis='y'、axis='z'。 |
plt.xticks()
使用 plt.subplot() 建立的图表,可以透过对应的方法修改座标轴的标签,常用的属性如下 ( 完整属性参考:matplotlib.text ):
| 属性 | 说明 |
|---|---|
| ticks | 标签内容,使用串列数据。 |
| labels | 标签显示文字,使用串列数据。 |
| fontsize | 文字大小 |
| color | 文字颜色 |
| rotation | 旋转角度 |
import matplotlib.pyplot as plt
fig = plt.figure(figsize=(4,4))
x = range(5)
y = [1,2,3,4,5]
labels = ['x'+str(i) for i in x]
plt.subplot()
plt.xticks(ticks=x,
labels=labels,
color='#f00',
fontsize=20,
rotation=30) # 設定大小 20,紅色、旋轉 30 度的標籤文字
plt.plot(x,y)
plt.show()
ax.set_xticklabels()
使用 ax.set_xticklabels() 建立的图表需要搭配 plt.xticks() 方法,除了不支援 ticks 和 labels 属性,其他属性都和 plt.xticks() 相同 ( 类似覆写样式的概念 ),如果单独使用,会出现标签位置错误的状况。
import matplotlib.pyplot as plt
fig = plt.figure(figsize=(4,4))
x = range(5)
y = [1,2,3,4,5]
labels = ['x'+str(i) for i in x]
ax = plt.subplot()
plt.xticks(ticks=x,
color='#f00',
fontsize=20,
rotation=30) # 先設定標籤文字樣式
ax.set_xticklabels(
labels=labels,
color='#00f',
fontsize=20,
rotation=0) # 覆寫樣式
plt.plot(x,y)
plt.show()
plt.setp(ax.get_xticklabels())
透过 ax.get_xticklabels() 取得座标轴标签对象后,就能进行对应的属性设定,常用的属性如下 ( 完整属性参考:matplotlib.text ):
| 属性 | 说明 |
|---|---|
| ticks | 标签内容,使用串列数据。 |
| labels | 标签显示文字,使用串列数据。 |
| fontsize | 文字大小 |
| color | 文字颜色 |
| rotation | 旋转角度 |
import matplotlib.pyplot as plt
fig = plt.figure(figsize=(4,4))
x = range(5)
y = [1,2,3,4,5]
labels = ['x'+str(i) for i in x]
ax = plt.subplot()
plt.setp(ax.get_xticklabels(),
color='#00f',
fontsize=20,
rotation=-30) # 設定 x 軸
plt.setp(ax.get_yticklabels(),
color='#f00',
fontsize=20,
rotation=-30) # 設定 y 軸
plt.plot(x,y)
plt.show()
ax.tick_params(axis='x')
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()
微信扫码关注
抖音扫码关注