【发布时间】:2019-08-05 06:51:30
【问题描述】:
编辑
我终于解决了这个问题,原来这都是 PyCharm 中 SciView 功能的一个错误,但是按照@Bazingaa 的建议保存图像并添加任何一个解决方案,即constrained_layout 或tight_layout 已经解决了对我来说,所以这个问题可以结束了。
谢谢大家的帮助:)
问题
我知道以前有人问过这个问题,例如 here 和 here。但是,由于某种原因,到目前为止,所提供的解决方案都没有对我有用。
我有一个带有两个子图的图,每个图都有自己的标题,图也有标题。问题是图形的标题与坐标轴的标题重叠。
这里是示例代码:
import numpy as np
import matplotlib.pyplot as plt
fig, ax = plt.subplots(1, 2, figsize=(8, 3))
# fig, ax = plt.subplots(1, 2, figsize=(8, 3), constrained_layout=True)
data = np.random.normal(0, 1, 100)
fig.suptitle('Comparison of distribution in different pieces')
ax[0].set_title('Original distributions')
ax[0].hist(x=data, density=True,
edgecolor='k')
ax[1].set_title('Standardized distribution')
ax[1].hist(x=data, density=True,
edgecolor='k')
plt.tight_layout()
plt.show()
如您所见,我已经在使用plt.tight_layout(),并且我尝试使用plt.adjust_subplots() 增加上边距,并将图中的constrained_layout 参数设置为True,但我得到的结果完全相同无论我如何更改这些函数的参数,甚至不调用它们中的任何一个,都可以生成图像。
这里是output image。
此外,任何有关此代码的建议或更正将不胜感激,因为我仍然是 matplotlib 的新手。
附:感谢@Bazingaa 让我以他的代码为例来解决我的问题。
【问题讨论】:
-
如果您使用的是最新的 matplotlib,请尝试使用约束布局而不是紧凑布局
-
@JodyKlymak 也试过了,但是没用,结果一模一样...
标签: python matplotlib