0

我最近不得不重新安装我的操作系统并决定切换到 Python3。随之而来的是我的 IDE PyCharm 的更新,大概还有 Matplotlib 的更新。

运行一个以前运行良好的脚本,现在给我的结果是丑陋的,我的子图标题重叠。

这是一个示例代码:

import numpy as np
import matplotlib.pyplot as plt

z = np.random.uniform(low=0, high=100, size=(20,4))

fig, axes = plt.subplots(2, 2, constrained_layout=True, sharey=True, sharex=True)
axes[-1, 0].set_xlabel('.\n', color=(0, 0, 0, 0))
axes[-1, 0].set_ylabel('.\n', color=(0, 0, 0, 0))
for s_plot, ax in enumerate(axes.flat):
    ax.scatter(x=range(20), y=z[:,s_plot])

fig.suptitle("The Title\nSecond Line\n", fontsize=12)
plt.show()

这会产生: 在此处输入图像描述

我尝试设置constrained_layoutFalse尝试了subplots_adjust,但它并没有改变我的地块布局。

我目前正在使用 matplotlib 3.0.2。有没有我错过的重大变化?我很困惑如何解决这个问题。

4

2 回答 2

2

使用 matplotlib 3.0.2 绘图将如下所示

使用constrained_layout=True 在此处输入图像描述

使用constrained_layout=False 在此处输入图像描述

这两种结果都是预期的。在constrained_layout被使用的情况下,标题出现偏离中心,因为标签使用的子图左侧的空间比右侧多。

于 2019-02-12T16:38:04.873 回答
0

我也认为这是pycharm的问题。因此,例如,当我在这个标准 matplotlib 脚本中运行代码时: https ://matplotlib.org/3.1.1/gallery/subplots_axes_and_figures/figure_title.html

我得到这个标题和副标题重叠的图像: 在此处输入图像描述

但是,当保存为 png 时,标题和副标题不会重叠。

我提出了一个 pycharm 的问题,希望能解决这个问题: https ://youtrack.jetbrains.com/issue/PY-42545

同时,我建议您拆分编辑器屏幕以显示 .png 文件,您可以在每次运行代码时使用 CTRL+ALT+Y 刷新该文件。

于 2020-05-18T23:45:24.120 回答