首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Matplotlib tight_layout()没有考虑图形suptitle

Matplotlib tight_layout()没有考虑图形suptitle
EN

Stack Overflow用户
提问于 2011-11-24 04:12:47
回答 9查看 154.1K关注 0票数 275

如果我在matplotlib图中添加一个副标题,它就会被子图的标题所覆盖。有没有人知道如何轻松解决这个问题?我尝试过tight_layout()函数,但它只会让事情变得更糟。

示例:

代码语言:javascript
运行
复制
import numpy as np
import matplotlib.pyplot as plt

f = np.random.random(100)
g = np.random.random(100)
fig = plt.figure()
fig.suptitle('Long Suptitle', fontsize=24)
plt.subplot(121)
plt.plot(f)
plt.title('Very Long Title 1', fontsize=20)
plt.subplot(122)
plt.plot(g)
plt.title('Very Long Title 2', fontsize=20)
plt.tight_layout()
plt.show()
EN

回答 9

Stack Overflow用户

发布于 2011-11-24 04:16:56

您可以使用plt.subplots_adjust(top=0.85)手动调整间距

代码语言:javascript
运行
复制
import numpy as np
import matplotlib.pyplot as plt

f = np.random.random(100)
g = np.random.random(100)
fig = plt.figure()
fig.suptitle('Long Suptitle', fontsize=24)
plt.subplot(121)
plt.plot(f)
plt.title('Very Long Title 1', fontsize=20)
plt.subplot(122)
plt.plot(g)
plt.title('Very Long Title 2', fontsize=20)
plt.subplots_adjust(top=0.85)
plt.show()
票数 126
EN

Stack Overflow用户

发布于 2015-02-10 00:42:39

另一种简单易用的解决方案是使用suptitle调用中的y参数来调整图中的suptitle文本的坐标(参见docs):

代码语言:javascript
运行
复制
import numpy as np
import matplotlib.pyplot as plt

f = np.random.random(100)
g = np.random.random(100)
fig = plt.figure()
fig.suptitle('Long Suptitle', y=1.05, fontsize=24)
plt.subplot(121)
plt.plot(f)
plt.title('Very Long Title 1', fontsize=20)
plt.subplot(122)
plt.plot(g)
plt.title('Very Long Title 2', fontsize=20)
plt.show()
票数 20
EN

Stack Overflow用户

发布于 2019-07-09 18:37:44

紧凑的布局不适用于suptitle,但constrained_layout可以。请参阅此问题Improve subplot size/spacing with many subplots in matplotlib

我发现立即添加子情节看起来更好,即

代码语言:javascript
运行
复制
fig, axs = plt.subplots(rows, cols, constrained_layout=True)

# then iterating over the axes to fill in the plots

但也可以在创建图形时添加该图形:

代码语言:javascript
运行
复制
fig = plt.figure(constrained_layout=True)

ax1 = fig.add_subplot(cols, rows, 1)
# etc

注意:为了使我的子图更紧密,我还使用了

代码语言:javascript
运行
复制
fig.subplots_adjust(wspace=0.05)

而constrained_layout不能处理以下内容:(

票数 19
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8248467

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档