Python绘图库Matplotlib中常用的函数使用示例
Matplotlib是Python中最常用的绘图库之一,可以灵活地绘制各种图形,从简单的线图和散点图到复杂的3D图形和动画。下面介绍Matplotlib中常用的函数使用示例。
1. 创建图形
首先需要创建一个图形,在Matplotlib中可以使用plt.subplots函数来创建一个图形和一个子图,如下所示:
import matplotlib.pyplot as plt fig, ax = plt.subplots()
这里的fig是整个图形的对象,ax是子图的对象,可以在其中添加各种元素,如曲线、散点等。
2. 绘制曲线
绘制曲线可以使用plt.plot函数,例如:
import matplotlib.pyplot as plt import numpy as np x = np.linspace(0, 2*np.pi, 100) y = np.sin(x) plt.plot(x, y) plt.show()
这里先使用numpy库生成了100个0到2π之间的等间距的数值作为x轴,然后使用sin函数计算这些点所对应的y轴值,最后使用plt.plot函数将这些点连接成曲线并显示出来。结果如下图所示:

可以将多个曲线绘制在同一个图中,只需在plt.plot函数中传入多组数据即可,如下所示:
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) plt.plot(x, y1) plt.plot(x, y2) plt.show()
这里将sin函数和cos函数的结果分别用两个不同的颜色画在同一个图中,结果如下图所示:

3. 绘制散点图
绘制散点图可以使用plt.scatter函数,例如:
import matplotlib.pyplot as plt import numpy as np x = np.random.rand(30) y = np.random.rand(30) color = np.random.rand(30) size = np.random.rand(30) * 1000 plt.scatter(x, y, c=color, s=size) plt.show()
这里使用numpy库生成了30个随机数值用于x轴和y轴,再生成30个0到1之间的随机数作为颜色值和大小值,并使用plt.scatter函数将这些点画在同一张图中。结果如下图所示:

4. 添加标注和注释
在绘制图形时,可以添加各种标注和注释,例如:
import matplotlib.pyplot as plt
import numpy as np
x = np.linspace(0, 2*np.pi, 100)
y = np.sin(x)
fig, ax = plt.subplots()
ax.plot(x, y)
ax.set_xlabel('x label')
ax.set_ylabel('y label')
ax.set_title('title')
ax.text(2, 0.8, 'y=sin(x)', fontsize=10, ha='center', va='center')
ax.annotate('local max', xy=(np.pi/2, 1), xytext=(np.pi/2+0.5, 1.5),
arrowprops=dict(facecolor='black', shrink=0.05))
plt.show()
这里使用plt.subplots函数创建了一个图形和一个子图,然后在子图中画出了sin曲线,添加了x轴、y轴的标注和标题,使用text函数在图中添加了一段文本,并使用annotate函数在图中添加了一个注释,如下图所示:

5. 设置风格和样式
Matplotlib支持多种风格和样式,可以通过plt.style来设置,例如:
import matplotlib.pyplot as plt
import numpy as np
plt.style.use('ggplot')
x = np.linspace(0, 2*np.pi, 100)
y = np.sin(x)
plt.plot(x, y)
plt.show()
这里通过plt.style.use函数将绘图的风格设置为ggplot,可以获得一种比较炫酷的效果,如下图所示:

还可以通过plt.colors列表来获取RGB颜色,例如:
import matplotlib.pyplot as plt
import numpy as np
colors = plt.rcParams['axes.prop_cycle'].by_key()['color']
x = np.linspace(0, 2*np.pi, 100)
for i in range(5):
y = np.sin(x+i*np.pi/2)
plt.plot(x, y, color=colors[i])
plt.show()
这里使用plt.rcParams['axes.prop_cycle'].by_key()['color']获取到了默认的RGB颜色列表,然后用这个颜色列表画了5个不同颜色的sin曲线,如下图所示:

还可以使用plt.setp函数来设置线段的样式,例如:
import matplotlib.pyplot as plt import numpy as np x = np.linspace(0, 2*np.pi, 100) y = np.sin(x) fig, ax = plt.subplots() ax.plot(x, y) lines = ax.get_lines() plt.setp(lines[0], linestyle='--', linewidth=2, color='r') plt.show()
这里使用plt.setp函数将 个线段的样式设置成虚线、宽度为2、颜色为红色,如下图所示:

以上就是Matplotlib中常用的函数使用示例,Matplotlib提供了丰富的API和工具,可以满足绝大多数绘图需求。
