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

时间:2013-11-05 15:03:14

标签: python matplotlib subplot

我正在使用matplotlib在一个图上绘制多个箱图,遵循以下示例:
 http://matplotlib.org/examples/pylab_examples/subplots_demo.html

一切都按预期工作,但我无法弄清楚如何更改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()

当我只处理一个数据集时,注释掉的行可以更改标签,但是这个命令无法用我正在使用的方法识别。 Pyplot作为plt导入。

1 个答案:

答案 0 :(得分:16)

我们假设axarr[0]有4个可见的x tick labels[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。因此,如果您尝试在代码中使用它,则应该收到错误。