当使用子图时更改x轴刻度标签

9
我正在使用matplotlib在单个图形上绘制多个箱线图,参考此处的示例。一切都按预期工作,但我无法弄清如何更改x轴上的刻度标签。我有四个数据系列在绘制,但x轴刻度被标记为“1,2,3,4”,而我想为这些值分配文本。我的绘图代码如下:
f, axarr = plt.subplots(2, sharex=True)
axarr[0].boxplot(WS_Bias, whis = 100)
#axarr[0].xticks(range(1, len(Labels)+1),Labels)
axarr[0].axhspan(-0.5, 0.5, facecolor='c', alpha = 0.2)

axarr[1].boxplot(WS_RMS, whis = 100)
#axarr[1].xticks(range(1, len(Labels)+1),Labels)
axarr[1].axhspan(0, 2, facecolor='c', alpha = 0.2)

pl.show()

注释掉的代码行可以在处理单个数据集时更改标签,但是我正在使用的方法无法识别此命令。导入的是plt。

你所说的标签是指“刻度标签”对吗?如果是这样(我认为是),请编辑标题和文本以使用“刻度标签”。轴标签是与轴相关联的变量名称,而不是数字“1,2,3,..”。 - Francesco Montesano
谢谢,我已经相应地更新了它。你是正确的,我正在尝试更改实际的刻度标签。 - HHains
1个回答

23

假设 axarr[0] 有4个可见的x轴刻度标签[1,2,3,4]),而您想要的是 ['a', 'b', 'c', 'd']

您可以使用Axes方法set_xticklabels来设置x轴刻度标签,只需执行以下操作:

axarr[0].set_xticklabels(['a', 'b', 'c', 'd'])

关于此事:

当我只处理一个数据集时,注释掉的代码行可以用来更改标签,但是使用我现在的方法时,该命令无法识别。

xticks 不是 Axes 方法,而是 matplotlib.pyplot 中的一个函数,它(我想)封装了 set/get_xticksset/get_xtickslabels。因此,如果你在你的代码中尝试使用它,你应该会得到一个错误。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接