首页 > 后端开发 > Python教程 > 如何创建尺寸灵活配置的 Matplotlib 子图?

如何创建尺寸灵活配置的 Matplotlib 子图?

Susan Sarandon
发布: 2024-12-15 06:55:12
原创
795 人浏览过

How Can I Create Matplotlib Subplots with Flexibly Configurable Sizes?

在 Matplotlib 中灵活配置子图大小

创建不同大小的子图是可视化数据时的常见要求。 Matplotlib 提供了两种调整子图尺寸的方法:使用 GridSpec 或配置图形本身。

使用 Matplotlib 的图形调整子图大小

在提供的示例中,任务是创建两个子图,第一个子图比第二个子图宽三倍。使用图窗的构造函数,可以使用 Figsize 参数调整第一个图的大小。但是,第二个图的大小无法通过这种方式直接控制。

带有关键字参数的解决方案(Matplotlib >= 3.6.0)

自 Matplotlib 版本起3.6.0,关键字参数可以直接传递给 plt.subplots 和 subplot_mosaic 来指定 width_ratios 或子图的 height_ratios。这消除了针对此特定任务对 GridSpec 的需要。

import matplotlib.pyplot as plt

# Create subplots with custom width ratios
f, (a0, a1) = plt.subplots(1, 2, width_ratios=[3, 1])

# Plot on subplots
a0.plot(x, y)
a1.plot(y, x)

# Save to PDF
f.savefig('custom_width_subplots.pdf')
登录后复制

将子图与 Gridspec_kw 一起使用

对于 Matplotlib 的早期版本,或者进行更细粒度的控制子图布局,可以使用带有 gridspec_kw 参数的 subplots 函数。此方法涉及创建图形和单独的子图,并使用 gridspec_kw 字典中的 width_ratios 或 height_ratios 指定。

import numpy as np
import matplotlib.pyplot as plt

# Generate data
x = np.arange(0, 10, 0.2)
y = np.sin(x)

# Create subplots with custom width ratios
f, (a0, a1) = plt.subplots(1, 2, gridspec_kw={'width_ratios': [3, 1]})

# Plot on subplots
a0.plot(x, y)
a1.plot(y, x)

# Tighten layout and save to PDF
f.tight_layout()
f.savefig('grid_figure.pdf')
登录后复制

以上是如何创建尺寸灵活配置的 Matplotlib 子图?的详细内容。更多信息请关注PHP中文网其他相关文章!

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