多个子图的自定义xticks?

时间:2016-06-09 09:23:36

标签: python matplotlib

使用Matplotlib,我有两个子图,我希望它们具有相同的自定义字符串xticks。

这是我到目前为止尝试过的最小例子:

import matplotlib.pyplot as plt
f, axs = plt.subplots(ncols=2, sharex=True)
plt.xticks(range(6), [str(x)+"foo" for x in range(6)], rotation='45')
for i in range(2):
    ax = axs[i]
    ax.plot(range(6), range(6))
f.show()

生成此输出:

output of code example

请注意,左侧的xticks是旋转。我怎么能这样做?

如果删除sharex=True,左侧子图没有自定义xticks。但是,我无法将xticks提供给单个轴。这会导致错误:

AttributeError: 'AxesSubplot' object has no attribute 'xticks'

1 个答案:

答案 0 :(得分:6)

如果sharex不是主要使用此代码:

import matplotlib.pyplot as plt
f, axs = plt.subplots(ncols=2)
for i in range(2):
    ax = axs[i]
    ax.set_xticks(range(6))
    ax.set_xticklabels([str(x)+"foo" for x in range(6)], rotation=45)
    ax.plot(range(6), range(6))
plt.show()

enter image description here