在上一节,我们介绍了Python的pandas模块,包括:Series、DataFrame、数据读取和写入等内容。在这一节,我们将介绍Python的matplotlib模块。matplotlib模块是一个Python的2D绘图库,可以实现各种类型的图形绘制,包括:线图、柱状图、饼图、散点图等。matplotlib支持各种格式的输出,比如:PNG、SVG、PDF等,可以很方便地将图形输出到文件或在屏幕上显示。
在Python中使用matplotlib模块,需要先安装matplotlib库。可以通过pip命令进行安装:pip install -i https://pypi.tuna.tsinghua.edu.cn/simple matplotlib。安装完成后,就可以在Python脚本中导入matplotlib模块,并使用其函数和方法了。
在下面的示例代码中,我们首先引入了Matplotlib的pyplot模块,并定义了x、y两个列表。然后,使用plt.plot(x, y)函数绘制了一条线。最后,通过plt.show()函数显示图形。
- import matplotlib.pyplot as plt
-
- x = [1, 3, 5, 7, 9]
- y = [1, 9, 25, 49, 81]
-
- plt.plot(x, y)
- plt.show()
执行上面的示例代码后,其输出如下。
除了基本的绘图函数,Matplotlib还提供了许多参数设置功能,可以自定义图形的各种属性,比如:颜色、线型、刻度、标签等。下面的示例代码绘制了一条黄色的线,并设置了X轴和Y轴的标签。
- import matplotlib.pyplot as plt
-
- x = [1, 3, 5, 7, 9]
- y = [1, 9, 25, 49, 81]
-
- plt.plot(x, y, color = 'yellow')
- plt.xlabel('X Axis')
- plt.ylabel('Y Axis')
- plt.show()
执行上面的示例代码后,其输出如下。
在下面的示例代码中,我们使用plt.bar()函数绘制了一个简单的柱状图,并传入了标签和相应的数值,图形中的每个柱子都对应一个标签和一个数值。
- import matplotlib.pyplot as plt
-
- labels = ['C', 'S', 'D', 'N']
- values = [36, 50, 22, 65]
-
- plt.bar(labels, values)
- plt.show()
执行上面的示例代码后,其输出如下。
在下面的示例代码中,我们使用plt.pie()函数绘制了一个简单的饼图,并传入了标签和相应的数值。plt.pie()函数有如下几个参数,分别进行介绍。
sizes:表示每个部分的大小,它将自动根据这些大小生成饼图。
labels:表示每个部分的标签。
autopct:用于显示每个部分的百分比,格式由参数值决定。在本例中,它显示的是百分比的小数形式,保留两位小数。
- import matplotlib.pyplot as plt
-
- labels = ['C', 'S', 'D', 'N']
- values = [36, 50, 22, 65]
-
- # 保留两位小数
- plt.pie(values, labels = labels, autopct = '%1.2f%%')
- # 确保饼图是圆的(即x轴和y轴的比例相同)
- plt.axis('equal')
- plt.show()
执行上面的示例代码后,其输出如下。
在下面的示例代码中,我们使用plt.scatter(x, y)函数创建了散点图。该函数接受两个参数:x和y坐标列表。然后,我们使用plt.title()、plt.xlabel()、plt.ylabel()函数为散点图添加了标题和轴标签。
- import matplotlib.pyplot as plt
- import numpy as np
-
- # 生成一些随机数据
- x = np.random.rand(30)
- y = np.random.rand(30)
-
- # 创建散点图
- plt.scatter(x, y)
-
- # 添加标题和轴标签
- plt.title('Scatter Plot Demo')
- plt.xlabel('X-Axis')
- plt.ylabel('Y-Axis')
-
- plt.show()
执行上面的示例代码后,其输出如下。
对于定制化需求,Matplotlib模块提供了大量的参数和API供用户自定义图形。比如:可以设置图形的标题、标签、颜色、线型、刻度等属性,也可以添加文本、散点、矩形等图形元素。
在下面的示例代码中,我们首先使用plt.text函数添加了文本。然后,使用plt.Rectangle函数来创建一个矩形对象,并使用ax.add_patch函数将它添加到图形上。矩形的位置和大小由它的四个参数决定:左下角的x和y坐标、矩形的宽度和高度。另外,我们还可以设置矩形的颜色和线宽。最后,我们设置x和y轴的限制,以便全部的矩形都能被显示出来。
- import matplotlib.pyplot as plt
-
- x = [1, 3, 5, 7, 9]
- y = [1, 9, 25, 49, 81]
-
- plt.plot(x, y)
-
- # 添加文本
- plt.text(5, 36, 'CSDN', fontsize = 12)
-
- # 添加矩形
- fig, ax = plt.subplots()
- rect = plt.Rectangle((3, 3), 6, 9, fill = True, edgecolor = 'red', linewidth = 2)
- ax.add_patch(rect)
-
- # 设置x和y轴的限制,以便显示全部的矩形
- ax.set_xlim(0, 15)
- ax.set_ylim(0, 15)
-
- plt.show()
执行上面的示例代码后,其输出如下。