创建不同大小的子图是可视化数据时的常见要求。 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中文网其他相关文章!