📜  显示多个图 python (1)

📅  最后修改于: 2023-12-03 14:55:12.083000             🧑  作者: Mango

显示多个图 Python

在Python中,我们可以用不同的库来显示多个图像。在本文中,我们将介绍Matplotlib和Seaborn库。这两个库都是Python中最流行的可视化库之一,可供选择的样式和功能非常丰富。

Matplotlib

Matplotlib是Python中最常用的数据可视化库之一。它可以显示各种类型的图像,如折线图、直方图、散点图等。当我们需要在Python中显示多个图像时,Matplotlib提供了两种常用方法。

通过subplot()方法显示多个图像

subplot()方法可以将图像分成多个区域,每个区域都可以显示不同的图像。下面是一个示例,它显示了一个包含两个子区域的图形,并在每个子区域中显示一个不同的折线图。

import matplotlib.pyplot as plt
import numpy as np

# 数据
x = np.linspace(0, 2*np.pi, 100)
y1 = np.sin(x)
y2 = np.cos(x)

# 显示两个图形
fig, axs = plt.subplots(2)
fig.suptitle('图形示例')
axs[0].plot(x, y1)
axs[1].plot(x, y2)
plt.show()

这个示例中,我们使用numpy函数生成一些x和y的值,然后使用subplot()方法在一个图形中显示两个图像。在subplot()方法中,我们定义了有两个子区域的图形。然后,我们使用Python中的axs[]构造方法来获取每个子区域,然后调用plot()方法显示不同的折线图。

输出的图像如下所示:

Matplotlib Subplot

通过add_subplot()方法显示多个图像

除了使用subplot()方法以外,我们还可以使用add_subplot()方法来显示多个图像。下面是一个示例,它显示了一个包含两个子区域的图形,并分别在每个子区域中显示了一个不同的散点图。

import matplotlib.pyplot as plt
import numpy as np

# 数据
x = np.random.rand(20)
y = np.random.rand(20)

# 显示两个图形
fig = plt.figure()
fig.suptitle('图形示例')
ax1 = fig.add_subplot(2, 1, 1)
ax1.scatter(x, y)
ax2 = fig.add_subplot(2, 1, 2)
ax2.scatter(y, x)
plt.show()

这个示例中,我们使用numpy函数生成一些随机x和y值,然后使用add_subplot()方法在一个图形中显示两个图像。在add_subplot()方法中,我们定义了包含两个子区域的图形,并使用ax1ax2变量来获取每个子区域,然后调用scatter()方法显示不同的散点图。

输出的图像如下所示:

Matplotlib add_subplot

Seaborn

Seaborn是Python中的另一个可视化库,它可以创建各种独特的图形,如分布图、热图、分类图、回归图等。和Matplotlib库一样,Seaborn可以用来显示多个图像。下面是一个示例,它使用Seaborn库显示了一个包含3个子区域的图形,并在每个子区域中分别显示了一个不同的直方图。

import seaborn as sns
import numpy as np

# 数据
x1 = np.random.normal(1, 1, 100)
x2 = np.random.normal(2, 1, 100)
x3 = np.random.normal(3, 1, 100)

# 显示3个图形
fig, (ax1, ax2, ax3) = plt.subplots(ncols=3, figsize=(12, 4))
fig.suptitle('图形示例')
sns.distplot(x1, ax=ax1)
sns.distplot(x2, ax=ax2)
sns.distplot(x3, ax=ax3)
plt.show()

这个示例中,我们使用numpy函数生成一些随机值,然后使用Seaborn库的distplot()方法在一个图形中显示三个直方图。在这个示例中,我们将图形分成3个子区域,并使用ax1ax2ax3来获取每个子区域。

输出的图像如下所示:

Seaborn subplot