仅制作左子图和底部子图(在MxN面板中)包含x和y轴标签

时间:2013-06-19 17:18:14

标签: python matplotlib axes

在一组NxM子图中是否有任何方法可以显示左列和底行的轴。

A|N|N|N
A|N|N|N
A|N|N|N
A|A|A|A

其中A =轴,N =无轴

有时我的子图是10x8,3x4,4x9等,它们都有相同的x和y轴。我只是希望它出现在该子集的最左侧和最底层。目前我必须知道它正在绘制哪个轴并且

    if (figi-1) % 7 != 0:
        ax.set_yticklabels([])

    if figi < 29:
        ax1.set_xticklabels([])

我希望将此概括为任何NxM面板安排,而无需事先了解。 感谢。

编辑:我找到了一种做y轴的方法。我使用以下方法设置了面板的数量:

nwide = 12
nhigh = 5

这意味着我可以做到

if (figi-1) % nwide != 0:
    ax.set_yticklabels([])

任何关于底层的想法?

编辑:完成了工作。 x轴如下:

if figi < (nwide*nhigh) - nwide:
    ax.set_xticklabels([])

1 个答案:

答案 0 :(得分:4)

最佳解决方案可能是pyplot.subplots()。你可以这样做:

fig, axes = pyplot.subplots(nrows=3, ncols=4, sharex=True, sharey=True)

enter image description here

然后只有左轴和下轴会显示标签。

要访问每个子图,您可以像{I}中一样从axes获取它:ax = axes[i,j]

要控制刻度线位置,您可以使用:

ax.xaxis.set_tick_position('bottom')
ax.yaxis.set_tick_position('left')

要设置轴标签,您可以执行以下操作:

ax.set_label_text('Something')