首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >matplotlib:防止subplot标题比subplot更宽

matplotlib:防止subplot标题比subplot更宽
EN

Stack Overflow用户
提问于 2019-03-16 22:06:14
回答 1查看 148关注 0票数 2

我正在使用plt.subplots创建一个图像网格。

如何确保一个子图的标题不会超出其下图像的宽度?

换句话说,有没有办法设置子情节标题的最大尺寸,使其不会与相邻标题重叠?

如果标题超出了下面的图像,我想减小它的字体大小,这样它就不会了。

EN

回答 1

Stack Overflow用户

发布于 2019-03-16 23:35:29

您可以迭代地更改字体大小,直到标题宽度小于轴。我想不让标题小于1pt是有意义的(即使它不再可读,所以请随意选择不同的数字)。下面以1pt的fontsize步长进行迭代;也可以调整这一步。

代码语言:javascript
复制
import matplotlib.pyplot as plt


fig, (ax1, ax2) = plt.subplots(ncols=2)
ax1.plot([1,2])
ax1.set_title("Short title")
ax2.plot([2,1])
ax2.set_title("Loooooong title, which exceeds plot axes width.")


def adjust_title(ax):
    title = ax.title
    ax.figure.canvas.draw()
    def _get_t():
        ax_width = ax.get_window_extent().width
        ti_width = title.get_window_extent().width
        return ax_width/ti_width

    while _get_t() <= 1 and title.get_fontsize() > 1:        
        title.set_fontsize(title.get_fontsize()-1)



adjust_title(ax1)
adjust_title(ax2)

plt.show()

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

https://stackoverflow.com/questions/55197674

复制
相关文章

相似问题

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