Matplotlib 如何改变带有子图的图形尺寸

Matplotlib 如何改变带有子图的图形尺寸

阅读更多:Matplotlib 教程

介绍

Matplotlib是一个Python的可视化库,它提供了各种绘制图表的方法。在Matplotlib中,我们可以使用子图(subplots)来展示多个图形,这对于比较复杂的数据分析和可视化任务非常有帮助。本文将围绕着如何改变带有子图的图形尺寸展开。

Matplotlib子图简介

在Matplotlib中,我们可以使用subplot()方法创建子图。这个方法有三个数字参数,subplot(nrows, ncols, index),分别表示行数、列数和子图索引。例如,下面的代码创建了1行2列的子图来展示两个折线图:

import matplotlib.pyplot as plt
import numpy as np

x = np.linspace(0, 10, 100)
y1 = np.sin(x)
y2 = np.cos(x)

plt.subplot(1, 2, 1)
plt.plot(x, y1)

plt.subplot(1, 2, 2)
plt.plot(x, y2)

plt.show()
Python

这段代码中,我们先生成了一个包含100个点的x轴数据,以及两条y轴数据:sin(x)cos(x)。然后,我们使用subplot()方法创建了1行2列的子图,第一个subplot()表示第一行第一列的子图,第二个表示第一行第二列的子图。接着,我们在子图中绘制了两个折线图,并使用show()方法展示图形。

默认情况下,Matplotlib子图大小是相等的。然而,在实际开发中,经常需要调整子图的大小,以便更好地展示数据。

改变子图大小

一种简单的方法是使用figure()方法来创建一个新的图形,并指定其大小。例如,下面的代码创建了一个包含两个子图的图形,并将其大小设置为(10, 5):

plt.figure(figsize=(10, 5))

plt.subplot(1, 2, 1)
plt.plot(x, y1)

plt.subplot(1, 2, 2)
plt.plot(x, y2)

plt.show()
Python

这里的figsize参数可以是一个元组,指定图形的宽度和高度。例如(10, 5)表示宽度为10,高度为5。这段代码与前面的例子唯一的区别是使用了figure(figsize=(10, 5))方法创建了一个包含两个子图的新图形,并指定了它的大小。 Figures 的默认大小是 8×6 英寸,其实也可以不加figsize参数,可以获得一样的效果。

除了上述的方法外,Matplotlib还提供了subplots_adjust()方法,该方法可以调整子图之间的间距,以便更好地展示数据。subplots_adjust()方法包含了四个调节参数,它们分别是left、bottom、right和top,表示子图的左边距、底部距离、右边距和上部距离。例如,下面的代码调整了两个子图之间的间距:

plt.figure(figsize=(10, 5))

plt.subplot(1, 2, 1)
plt.plot(x, y1)

plt.subplot(1, 2, 2)
plt.plot(x, y2)

plt.subplots_adjust(wspace=0.4)

plt.show()
Python

在这段代码中,我们增加了一个subplots_adjust(wspace=0.4)调用,它将子图之间的水平间距(wspace)设为了0.4,默认的间距大小为0.2,我们可以根据需要进行调整。这样做可以让子图之间有更多的间隔,使得更容易观察数据。

另外还可以使用subplots()方法来创建多个子图,并在全部子图上设置共同的大小和间距。例如,下面的代码创建了一个包含两个子图的图形,并将其中一个子图划分为更小的区域:

fig, axs = plt.subplots(2, 1, figsize=(8, 6), sharex=True, gridspec_kw={'height_ratios': [3, 1]})
axs[0].plot(x, y1)
axs[1].plot(x, y2)

plt.show()
Python

这里我们使用了subplots()方法将图形划分为2行1列,并设置了共同的大小和间距。其中,figsize=(8, 6)指定了图形的大小,sharex=True表示两个子图使用相同的x轴,gridspec_kw={'height_ratios':[3,1]}表示在第一个子图与第二个子图之间划分一个比例3:1的区域。

总结

通过本文的介绍,我们可以了解到如何改变带有子图的图形尺寸。Matplotlib提供了多种改变图形尺寸和子图之间间距的方法,可以根据需要选择适合的方法调整图形。这些方法可以根据实际需求加以运用,能够提高数据可视化的效果。

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程