在matplotlib中使用具有奇数个子图的sharex

时间:2017-12-13 19:39:53

标签: python matplotlib subplot

我有一些奇怪的子图,如下:

import matplotlib.pyplot as plt 

fig, axes = plt.subplots(2, 2, sharex=True)
for i, ax in enumerate(axes.flat):
    ax.plot(range(10))
fig.delaxes(axes.flat[-1])

我希望它们都具有相同的x轴,但很容易将x-ticks添加回右侧的图中,因为不再有第4个图。

似乎应该有一个比手动添加每个子图更容易/更清晰的解决方案(类似于this answer),但我似乎找不到任何东西。感谢。

1 个答案:

答案 0 :(得分:1)

您可以使用setp使ax[0][1]的xtick标签可见

import matplotlib.pyplot as plt 

fig, axes = plt.subplots(2, 2, sharex=True)
for i, ax in enumerate(axes.flat):
    ax.plot(range(10))
# for matploltib version 2.0.1
plt.setp(axes[0][1].get_xticklabels(), visible=True)
# for matplotlib version 2.1.1
axes[0][1].xaxis.set_tick_params(which='both', labelbottom=True, labeltop=False)
fig.delaxes(axes.flat[-1])
plt.show()

将导致

enter image description here