matplotlib如何画多图例折线图
时间: 2024-04-25 10:17:56 浏览: 71
在matplotlib中,画多图例折线图需要用到legend()函数和多个axes对象。以下是一个基本的示例:
```python
import matplotlib.pyplot as plt
import numpy as np
# 创建数据
x = np.linspace(0, 10, 100)
y1 = np.sin(x)
y2 = np.cos(x)
y3 = np.exp(x)
fig, axs = plt.subplots(2, 1) # 创建一个包含两个axes的figure
axs.plot(x, y1) # 在第一个axes对象中画折线图
axs.set_title('sin') # 设置第一个axes的标题
axs.legend(['sin']) # 添加图例,图例中包含'sin'这个标签
axs.plot(x, y2) # 在第二个axes对象中画折线图
axs.set_title('cos') # 设置第二个axes的标题
axs.legend(['cos']) # 添加图例,图例中包含'cos'这个标签
plt.show() # 显示图形
```
在这个例子中,我们创建了两个axes对象(axs和axs),并在每个对象中画了不同的折线图。然后我们使用legend()函数为每个图例添加了相应的标签('sin'和'cos')。最后,我们使用plt.show()函数显示了图形。
注意,如果你有多于两个的图例,你可能需要使用多个legend()函数或者在legend()函数中使用一个包含所有图例标签的列表。例如:
```python
fig, axs = plt.subplots(3, 1) # 创建一个包含三个axes的figure
axs.plot(x, y1) # 在第一个axes对象中画折线图
axs.set_title('sin') # 设置第一个axes的标题
axs.legend(['sin', 'example 1']) # 在第一个图例中添加'sin'和'example 1'两个标签
axs.plot(x, y2) # 在第二个axes对象中画折线图
axs.set_title('cos') # 设置第二个axes的标题
axs.legend(['cos', 'example 2']) # 在第二个图例中添加'cos'和'example 2'两个标签
axs[2].plot(x, y3) # 在第三个axes对象中画折线图
axs.set_title('exp') # 设置第三个axes的标题
axs.legend(['exp', 'example 3']) # 在第三个图例中添加'exp'和'example 3'两个标签
```
在这个例子中,我们创建了一个包含三个axes的figure,并为每个图例添加了两个标签。这可以用来表示你有三个不同的数据集或者三种不同的方法。
阅读全文