Matplotlib 绘制多图


Matplotlib是Python中最常用的绘图库之一,它具有高度的可定制性和灵活性。在实际应用中,我们通常需要绘制多张图,同时呈现在一个画布中。本文将介绍如何使用Matplotlib绘制多张图。

首先要导入Matplotlib库,代码如下:

import matplotlib.pyplot as plt

现在我们可以绘制一张图,代码如下:

plt.plot([1,2,3,4])
plt.ylabel('some numbers')
plt.show()

这个例子显示了如何绘制一条直线。在这个例子中,我们只有一张图。现在我们将在一张画布中绘制多个子图,代码如下:

import numpy as np

x = np.array([0, 1, 2, 3])
y = np.array([3, 8, 1, 10])

# plot 1
plt.subplot(1, 2, 1)
plt.plot(x, y, 'r')
plt.title('Plot 1')

# plot 2
plt.subplot(1, 2, 2)
plt.plot(y, x, 'g')
plt.title('Plot 2')

plt.suptitle('Subplots')
plt.show()

在这个例子中,我们使用numpy库生成了两个数组x和y,然后使用plt.subplot()函数在同一张画布中生成两个子图。subplot()函数的参数为三个整数,分别表示行数、列数和子图的索引。在这个例子中,我们定义了一个1行和2列的网格,并且第一个子图的索引是1 (即左边的那张图),第二个子图的索引是2 (即右边的那张图)。然后,我们使用plt.plot()函数在每个子图中绘制不同的数据,并使用plt.title()函数添加标题,最后使用plt.suptitle()在整个画布上添加一个标题。

除了使用subplot()函数,还可以使用plt.subplots()函数,代码如下:

# create a figure and axis objects with subplots
fig, ax = plt.subplots()

# plot the data
ax.plot(x, y)

# set the labels and titles
ax.set_xlabel('x')
ax.set_ylabel('y')
ax.set_title('Subplot')

# display the plot
plt.show()

在这个例子中,我们使用plt.subplots()函数创建了一个显示在绘图中的figure对象和一个axis对象 。然后,我们在axis对象上使用plt.plot()函数绘制数据,并使用ax.set_xlabel()、ax.set_ylabel()和ax.set_title()来设置标签和标题。最后,我们调用plt.show()函数来显示图片。

在Matplotlib中,还有一些其他的函数实现多图绘制,如plt.figure()函数创建新的画布对象,可以在一个颜色空间中绘制多张图。在使用Matplotlib绘制多张图中,关键是理解网格的概念,以便在一张画布上安排多个子图。通过这篇文章的练习,相信读者应该可以轻松应对绝大多数的绘图需求。