首页 > 后端开发 > Python教程 > 创建许多垂直堆叠图时,如何防止 Matplotlib 中子图重叠?

创建许多垂直堆叠图时,如何防止 Matplotlib 中子图重叠?

Patricia Arquette
发布: 2024-12-06 03:26:12
原创
692 人浏览过

Matplotlib 中的子图与众多图重叠

在 Matplotlib 中生成一系列垂直堆叠图以在网页上显示时,确保子图之间适当的间距对于防止重叠至关重要。尽管增加了图形大小,但子图经常重叠。

当前实现

以下代码说明了当前实现:

import matplotlib.pyplot as plt
import my_other_module

titles, x_lists, y_lists = my_other_module.get_data()

fig = plt.figure(figsize=(10,60))
for i, y_list in enumerate(y_lists):
    plt.subplot(len(titles), 1, i)
    plt.xlabel("Some X label")
    plt.ylabel("Some Y label")
    plt.title(titles[i])
    plt.plot(x_lists[i],y_list)
fig.savefig('out.png', dpi=100)
登录后复制

解决方案:紧密布局

要解决此问题,请考虑使用matplotlib.pyplot.tight_layout 或 matplotlib.figure.Figure.tight_layout。这些函数调整子图和间距,使它们不重叠。

示例

import matplotlib.pyplot as plt

fig, axes = plt.subplots(nrows=4, ncols=4, figsize=(8, 8))
fig.tight_layout() # Or equivalently,  "plt.tight_layout()"

plt.show()
登录后复制

视觉比较

下图展示了使用的影响strict_layout:

不带ight_layout

How Can I Prevent Overlapping Subplots in Matplotlib When Creating Many Vertically Stacked Plots?

有tight_layout

How Can I Prevent Overlapping Subplots in Matplotlib When Creating Many Vertically Stacked Plots?

以上是创建许多垂直堆叠图时,如何防止 Matplotlib 中子图重叠?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板