使用plt画多子图时ylabel对不齐

使用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()

img

您可以尝试使用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()

希望能帮助到您。

  • 这篇博客: Python matplotlib(2D绘图库)1中的 plt.xlabel()和plt.ylabel:x轴及y轴的标签 部分也许能够解决你的问题, 你可以仔细阅读以下内容或跳转源博客中阅读:
  • 函数
    plt.xlabel(label, fontdict=None, labelpad=None, **kwargs)