1. 简介
Matplotlib是基于Python的2D绘图库,其pyplot模块提供了一种简单的方式来使用Matplotlib绘制各种绘图,包括线图,散点图,条形图等等。本文将介绍pyplot中常用的图形函数,并提供示例代码。
2. 线图
2.1 简单线图
使用plot()
函数可以绘制简单的线图,例如:
import matplotlib.pyplot as plt
import numpy as np
x = np.arange(0, 4 * np.pi, 0.1)
y = np.sin(x)
plt.plot(x, y)
plt.show()
运行结果如下:
np.arange(start, stop, step)函数用于生成等差数列,其中start为起始值,stop为停止值(不包括该值),step为步长。
plt.plot(x, y)函数用于画线,其参数x和y为待绘制的数据序列,可以是Python列表或NumPy数组。如果只给定一个参数,则y默认为x,例如:
x = [1, 2, 3, 4]
plt.plot(x)
plt.show()
运行结果如下:
2.2 多条线图
使用plot()
函数可以绘制多条线图,例如:
x = np.arange(0, 4 * np.pi, 0.1)
y1 = np.sin(x)
y2 = np.cos(x)
plt.plot(x, y1, label='Sin')
plt.plot(x, y2, label='Cos')
plt.legend()
plt.show()
运行结果如下:
plt.legend()函数用于添加图例,其中label参数指定每一条线的名称。
2.3 线性回归
使用polyfit()
函数可以计算一组数据的线性回归方程,然后使用plot()
函数绘制该线性方程的图像。例如:
x = [1, 2, 3, 4, 5]
y = [1.5, 3, 4.5, 6, 7.5]
model = np.polyfit(x, y, 1)
predict = np.poly1d(model)
plt.plot(x, y, 'o', label='Original Data')
plt.plot(x, predict(x), label='Linear Regression')
plt.legend()
plt.show()
运行结果如下:
np.polyfit(x, y, n)函数用于计算x和y的n次多项式回归系数,其中n为回归方程阶数。返回值是一个一维数组,其元素表示n次多项式回归的系数。在本例中,n=1表示计算一阶线性回归方程的系数。
np.poly1d()函数用于生成多项式函数,其参数为多项式系数。调用该函数返回的多项式函数,可以直接用于计算多项式的值。
3. 散点图
3.1 简单散点图
使用scatter()
函数可以绘制简单的散点图,例如:
x = np.random.rand(50)
y = np.random.rand(50)
plt.scatter(x, y)
plt.show()
运行结果如下:
np.random.rand(n)函数用于生成n个随机数,其中每个数的值$0\le x<1$。
3.2 多组数据散点图
使用scatter()
函数可以绘制多组数据的散点图,例如:
x1 = np.random.rand(50)
y1 = np.random.rand(50)
x2 = np.random.rand(50)
y2 = np.random.rand(50)
plt.scatter(x1, y1, color='red', label='Group 1')
plt.scatter(x2, y2, color='blue', label='Group 2')
plt.legend()
plt.show()
运行结果如下:
plt.scatter()函数可以为每组散点设置不同的颜色,参数color表示颜色名称或RGB值。
4. 条形图
4.1 简单条形图
使用bar()
函数可以绘制简单的条形图,例如:
x = ['A', 'B', 'C', 'D']
y = [3, 5, 2, 7]
plt.bar(x, y)
plt.show()
运行结果如下:
4.2 多组数据条形图
使用bar()
函数可以同时绘制多组数据的条形图,例如:
x = ['A', 'B', 'C', 'D']
y1 = [3, 5, 2, 7]
y2 = [4, 6, 5, 8]
plt.bar(x, y1, color='red', label='Group 1')
plt.bar(x, y2, color='blue', label='Group 2')
plt.legend()
plt.show()
运行结果如下:
plt.bar()函数可以为每组数据设置不同的颜色,参数color表示颜色名称或RGB值。
5. 饼图
5.1 简单饼图
使用pie()
函数可以绘制简单的饼图,例如:
labels = ['A', 'B', 'C', 'D']
sizes = [12, 30, 15, 8]
plt.pie(sizes, labels=labels, autopct='%1.1f%%')
plt.show()
运行结果如下:
plt.pie()函数可以设置每个扇形的名称和大小,参数labels和sizes分别表示饼图的标签和大小。其他参数如下:
autopct: 控制饼图内每个扇形的数字格式,%1.1f%%表示小数点后一位,并且添加百分号;
explode: 控制每个扇形的偏移量,例如explode=(0, 0.1, 0, 0)表示第二个扇形偏移0.1个半径;
shadow: 用于绘制阴影效果;
startangle: 用于控制第一个扇形的起始角度,例如startangle=90表示从12点钟方向开始绘制饼图。
5.2 多层饼图
使用pie()
函数可以绘制由多个圆环组成的饼图,例如:
labels = ['A', 'B', 'C', 'D']
sizes1 = [12, 30, 15, 8]
sizes2 = [5, 25, 10, 12]
plt.pie(sizes1, labels=labels, radius=1, wedgeprops=dict(width=0.3, edgecolor='w'))
plt.pie(sizes2, radius=0.7, wedgeprops=dict(width=0.3, edgecolor='w'))
plt.axis('equal')
plt.show()
运行结果如下:
wedgeprops=dict(width=0.3, edgecolor='w')参数用于设置每个饼块的边缘宽度和边缘颜色,width表示宽度比例,edgecolor表示边缘颜色。使用多个饼图时需要指定每个饼图的半径、标签和大小,例如radius=1、sizes1和labels用于表示外层圆环的饼图,radius=0.7用于表示内层圆环的饼图,不需要指定标签信息。
6. 结语
本文介绍了pyplot中常用的图形函数并提供示例代码,包括线图、散点图、条形图和饼图。读者可以根据自己的需求选择相应的图形函数,并进行调整和修改,以达到自己的效果。请注意,代码中使用的一些函数和参数可能不是最优的选择,读者可以自行查阅文档或其他资料,以获取更多有关Matplotlib的信息。