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

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

Patricia Arquette
Patricia Arquette原创
2024-12-06 03:26:12646浏览

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中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn