【发布时间】:2015-07-21 22:45:39
【问题描述】:
我正在使用以下代码生成我希望 '对接' 在一起并共享轴的奇数个图。
import matplotlib.pyplot as plt
fig = plt.figure()
ax1 = fig.add_subplot(4,2,1)
ax1.set_yscale('log')
ax1.set_xscale('log')
plt.subplot(4,2,2, sharex=ax1, sharey=ax1)
plt.subplot(4,2,3, sharex=ax1, sharey=ax1)
plt.subplot(4,2,4, sharex=ax1, sharey=ax1)
plt.subplot(4,2,5, sharex=ax1, sharey=ax1)
plt.subplot(4,2,6, sharex=ax1, sharey=ax1)
plt.subplot(4,2,7, sharex=ax1, sharey=ax1)
plt.suptitle('The main title')
plt.xlabel('Some Value')
plt.ylabel("Value")
for ax in plt.gcf().axes: #To suppress Tick labels in subsequent subplots and keep only the left and bottom ones.
print ax
try:
ax.label_outer()
except:
pass
plt.subplots_adjust(wspace=0, hspace=0)
plt.show()
经过多次搜索发现,使用pyplot.gcf().axes,只能获取外部标签,使得标签不重复。
这正是我想要的,并且在图像数量为偶数时效果很好。
但是,当我有奇数个子图(例如,定义了 4x2 但只有 7 个子图)时,如示例所示,我希望 x 轴抽动也出现在右下图的 x 轴上不仅在左侧子图上。
很遗憾,我是新手,不允许发布图片。希望我的描述很清楚。如果你能想象出一张与link上的类似的图片
【问题讨论】:
标签: python matplotlib axis-labels subplot