在matplotlib中共享轴时显示刻度标签

10 浏览
0 Comments

在matplotlib中共享轴时显示刻度标签

我正在运行以下函数:

def plot_variance_analysis(indices, stat_frames, legend_labels, shape):
    x = np.linspace(1, 5, 500)
    fig, axes = plt.subplots(shape[0], shape[1], sharex=True sharey=True)
    questions_and_axes = zip(indices, axes.ravel())
    frames_and_labels = zip(stat_frames, legend_labels)
    for qa in questions_and_axes:
        q = qa[0]
        ax = qa[1]
        for fl in frames_and_labels:
            frame = fl[0]
            label = fl[1]
            ax.plot(x, stats.norm.pdf(x, frame['mean'][q], frame['std'][q]), label=label)
            ax.set_xlabel(q)
            ax.legend(loc='best')
    plt.xticks([1,2,3,4,5])
    return fig, axes

这是我使用自己的样本数据得到的结果:

![图片](https://i.stack.imgur.com/mlFo8.png)

我试图保持子图之间的共享状态,但同时在所有子图(包括前两个)上显示x轴的刻度标签。我在文档中找不到任何关闭此功能的方法。有什么建议吗?或者我应该逐个设置x轴刻度标签的轴?

我使用的是matplotlib 1.4.0版本,如果这很重要的话。

0