使用matplotlib画多子图时ylabel对不齐,有什么方法可以解决么?
下面是我画图的代码以及结果,可以看到ylabel有高有低的
fig = plt.figure(figsize=(80, 60))
plt.subplots_adjust(wspace=0.5)
for i in range(38):
plt.subplot(7, 6, i+1)
sns.boxplot(y=x_train.iloc[:, i], width=0.5)
plt.ylabel(x_train.columns[i])
plt.show()
您可以尝试使用fig.align_ylabels()方法来对齐子图的ylabel。这个方法会自动调整子图的纵坐标轴标签位置,使它们对齐。您可以在画完所有子图后,加上这一行代码:
scss
Copy code
fig.align_ylabels()
完整代码如下:
scss
Copy code
fig = plt.figure(figsize=(80, 60))
plt.subplots_adjust(wspace=0.5)
for i in range(38):
plt.subplot(7, 6, i+1)
sns.boxplot(y=x_train.iloc[:, i], width=0.5)
plt.ylabel(x_train.columns[i])
fig.align_ylabels()
plt.show()
希望能帮助到您。
函数
plt.xlabel(label, fontdict=None, labelpad=None, **kwargs)