警告:除非
ticklabel已设置为字符串(例如在boxplot中通常是这种情况),否则这不适用于任何比
Matplotlib更新的版本
1.1.0。如果你正在使用当前的github主机,则将无法使用。我不确定问题是什么…可能是意外更改,也可能不是…
通常,你会按照以下步骤进行操作:
import matplotlib.pyplot as pltfig, ax = plt.subplots()# We need to draw the canvas, otherwise the labels won't be positioned and # won't have values yet.fig.canvas.draw()labels = [item.get_text() for item in ax.get_xticklabels()]labels[1] = 'Testing'ax.set_xticklabels(labels)plt.show()
要了解为什么需要跳过这么多的障碍,你需要更多地了解
matplotlib的结构。
Matplotlib故意避免对刻度等进行“静态”定位,除非明确告知。假设你要与图进行交互,因此图的边界,刻度线,刻度标签等将动态变化。
因此,你不能只设置给定刻度标签的文本。默认情况下,每次绘制绘图时,都会通过轴的“定位器”和“格式化程序”将其重置。
但是,如果将“定位器”和“格式化程序”设置为静态(分别为
FixedLocator和
FixedFormatter),则刻度线标签保持不变。
这是什么
set_*ticklabels或
ax.*axis.set_ticklabels做。
希望这可以使我们更加清楚地知道为什么更改单个刻度标签有些麻烦。
通常,你实际要做的只是注释特定位置。在这种情况下,请查看
annotate。



