【发布时间】:2017-10-26 06:25:05
【问题描述】:
我想尽量减少图中的空白。我有一排子图,其中四个图共享它们的 y 轴,最后一个图有一个单独的轴。 共享轴中间面板没有 ylabels 或 ticklabels。
tight_layout 在中间图之间创建了很多空白区域,好像为刻度标签和 ylabels 留出了空间,但我宁愿拉伸子图。这可能吗?
import matplotlib.gridspec as gridspec
import numpy as np
import matplotlib.pyplot as plt
import seaborn as sns
fig = plt.figure()
gs = gridspec.GridSpec(1, 5, width_ratios=[4,1,4,1,2])
ax = fig.add_subplot(gs[0])
axes = [ax] + [fig.add_subplot(gs[i], sharey=ax) for i in range(1, 4)]
axes[0].plot(np.random.randint(0,100,100))
barlist=axes[1].bar([1,2],[1,20])
axes[2].plot(np.random.randint(0,100,100))
barlist=axes[3].bar([1,2],[1,20])
axes[0].set_ylabel('data')
axes.append(fig.add_subplot(gs[4]))
axes[4].plot(np.random.randint(0,5,100))
axes[4].set_ylabel('other data')
for ax in axes[1:4]:
plt.setp(ax.get_yticklabels(), visible=False)
sns.despine();
plt.tight_layout(pad=0, w_pad=0, h_pad=0);
【问题讨论】:
标签: python matplotlib