首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

【项目】使用Python matplotlib 绘制第一个图表(两种方法)

假设大家想画一幅素描:

同理,使用matplotlib库绘制的图形并非只有一层结构 。

方法一:自定义绘图区域

下面的代码展示了如何使用matplotlib来绘制一个简单的图表。我们将一步步地讲解每一行代码的功能,帮助学生理解整个过程。

import numpy as np

import matplotlib.pyplot as plt

# 准备数据

data = np.array([1, 2, 3, 4, 5])

# 创建代表画布的Figure 类的对象fig

fig = plt.figure()

# 在画布fig上添加坐标系风格的绘图区域ax

ax = fig.add_subplot()

# 绘制图表

ax.plot(data)

# 展示图表

plt.show()

输出结果:

第一步:导入需要的库

import numpy as np

import matplotlib.pyplot as plt

•import numpy as np:这行代码导入了numpy库并为它起了一个简短的别名np。numpy是一个非常常用的数学库,可以帮助我们更高效地处理数值计算,尤其是数组操作。在这段代码中,numpy主要用来创建数据。

•import matplotlib.pyplot as plt:这行代码导入了matplotlib.pyplot模块,并为它起了一个别名plt。matplotlib是一个用于绘图的库,pyplot是它的一个子模块,提供了简单的接口来绘制各种类型的图表。

第二步:准备数据

data = np.array([1, 2, 3, 4, 5])

• 这里,我们使用numpy创建了一个简单的一维数组data,包含了 5 个数字:[1, 2, 3, 4, 5]。这些数据将用于绘制图表。

第三步:创建画布

fig = plt.figure()

• 这行代码使用plt.figure()创建了一个Figure对象,表示整个画布。画布是你用来绘制图形的区域。在此之前并没有实际绘制任何内容,只是创建了一个空白的画布对象。

第四步:添加绘图区域

ax = fig.add_subplot()

• 这行代码在我们刚刚创建的fig画布上添加了一个坐标系风格的绘图区域ax。add_subplot()方法默认在画布上添加一个简单的坐标系(即 X 轴和 Y 轴),并为后续的绘图提供空间。

• 如果你在未来想要在同一个画布上添加多个子图,可以通过给add_subplot()方法传入多个参数来定义多个绘图区域,比如:fig.add_subplot(1, 2, 1)表示创建一个 1 行 2 列的布局,在第一个位置添加一个图表。

第五步:绘制图表

ax.plot(data)

• 这行代码实际绘制了数据data上的图表。ax.plot(data)是绘制一条折线图(默认行为),数据data中的每个点都会在图表中显示出来,并通过线条将相邻的点连接起来。

•ax.plot()方法的功能非常强大,你可以通过传入更多的参数来控制图表的样式(比如线条的颜色、类型、宽度等),但在这个简单的示例中,我们只使用了默认设置。

第六步:展示图表

plt.show()

• 这行代码是用来显示图表的。当你调用plt.show()时,matplotlib会打开一个图形窗口,显示你绘制的图表。在此之前,所有的绘图操作都只是添加到画布中,直到调用show(),图表才会被实际渲染出来。

输出结果

执行上述代码后,学生将看到一个非常简单的折线图,X 轴是数据的索引(从 0 到 4),Y 轴是数据的实际值(即[1, 2, 3, 4, 5])。

总结

• 我们首先导入了numpy和matplotlib库,准备好了数据。

• 然后创建了一个画布(fig)和一个绘图区域(ax)。

• 使用ax.plot()绘制了数据的折线图。

• 最后,通过plt.show()展示了图表。

这个过程展示了如何使用matplotlib快速绘制一个简单的图表,帮助学生理解绘图的基础步骤。

方法二:默认绘图区域

以下是另一个简化版本的代码,它与前面的代码效果相同,但在写法上有所不同。我们将逐步讲解这段代码的含义:

import numpy as np

import matplotlib.pyplot as plt     # 导入 pyplot 模块

# 准备数据

data = np.array([1, 2, 3, 4, 5])

# 在当前画布的绘图区域中绘制图表

plt.plot(data)

# 展示图表

plt.show()

输出结果:

第一步:导入需要的库

import numpy as np

import matplotlib.pyplot as plt

•import numpy as np:导入numpy库,numpy是用来处理数值计算和数组操作的工具,功能非常强大。我们使用numpy来创建数据。

•import matplotlib.pyplot as plt:导入matplotlib.pyplot模块,并为其指定别名plt。pyplot是matplotlib的一部分,它提供了一系列绘图功能。通过plt,我们可以简洁地创建各种类型的图表。

第二步:准备数据

data = np.array([1, 2, 3, 4, 5])

• 这行代码创建了一个简单的numpy数组data,包含了 5 个整数:[1, 2, 3, 4, 5]。这些数据将作为折线图的 Y 轴数据。

第三步:绘制图表

plt.plot(data)

• 在这行代码中,plt.plot(data)直接绘制了数据data的折线图。与之前的代码不同,这里没有显式创建画布fig和坐标区域ax,而是直接使用了plt来绘制图表。

• 在这个简化版本中,会自动创建一个画布和坐标区域。如果你没有特别指定画布和坐标区域,它会默认使用一个 "隐式" 的画布和坐标区域来进行绘图。实际上,plt.plot(data)也会自动在内存中创建一个画布和坐标区域,只不过我们没有显式地定义它们。

第四步:展示图表

plt.show()

• 这行代码是用来展示图表的。当调用plt.show()时,matplotlib会弹出一个窗口来显示已经绘制的图表。

区别和总结

1.简化的代码:与前一个示例相比,这段代码省略了显式创建画布(fig)和坐标区域(ax)的步骤,直接通过plt创建和管理这些对象。在大多数情况下,这种简化方式足够用,适用于简单的绘图任务。

2.隐式创建画布和坐标区域:在这个简化版本中,plt.plot(data)自动创建了画布和坐标区域,因此不需要单独调用fig = plt.figure()和ax = fig.add_subplot()。

3.代码更加简洁:对于初学者,直接使用plt.plot()和plt.show()可以让代码更简洁易懂,适合快速展示数据的趋势。

总体来说,虽然两段代码实现的效果完全一样,简化版的代码更适合一些简单的情景。而在需要更高灵活性和更多绘图控制时,第一种写法会更有优势,因为它显式地控制了图形的每个细节。

  • 发表于:
  • 原文链接https://page.om.qq.com/page/OMyW_94LU_F8gEPDhaQMgHSQ0
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券