matplotlib一张图中多条曲线
时间: 2023-07-12 11:05:16 浏览: 361
要在matplotlib中绘制多条曲线,可以使用plt.plot()函数。该函数可以接受多组数据作为参数,每组数据可以是一个列表或数组,分别表示x轴和y轴上的数据点。下面是一个简单的例子:
```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.tan(x)
# 绘制多条曲线
plt.plot(x, y1, label='sin(x)')
plt.plot(x, y2, label='cos(x)')
plt.plot(x, y3, label='tan(x)')
# 添加图例
plt.legend()
# 显示图形
plt.show()
```
在上面的代码中,我们首先导入了matplotlib和numpy库,并生成了三组数据x、y1、y2和y3,分别表示x轴和y轴上的数据点。然后,我们分别使用plt.plot()函数绘制了这三条曲线,并给每条曲线设置了一个标签,以便在图例中显示。最后,我们调用plt.legend()函数添加图例,并使用plt.show()函数显示图形。
运行上面的代码,你将会看到一张包含三条曲线的图形。你可以根据需要修改数据和标签,绘制出你想要的多条曲线。
相关问题
matplotlib绘制多条平滑曲线图
Matplotlib是一个非常流行的Python数据可视化库,它允许用户创建各种类型的图表,包括折线图。如果你想在同一张图上绘制多条平滑曲线,可以使用`plot()`函数配合`label`参数来标记每一条线,并使用`legend()`添加图例。如果你需要平滑曲线,你可以使用`rolling()`函数从pandas DataFrame获取移动平均值,或者直接通过设置`linestyle`为'dashed'或'dotted'来实现视觉上的平滑效果。
下面是一个简单的例子:
```python
import matplotlib.pyplot as plt
import pandas as pd
# 假设你有如下数据
data = {
'时间': [0, 1, 2, 3, 4, 5],
'曲线A': [1, 2, 3, 4, 5, 6],
'曲线B': [2, 4, 6, 8, 10, 12]
}
df = pd.DataFrame(data)
# 绘制平滑曲线
plt.plot(df['时间'], df['曲线A'].rolling(window=3).mean(), label='曲线A', linestyle='-')
plt.plot(df['时间'], df['曲线B'].rolling(window=3).mean(), label='曲线B', linestyle='--')
# 添加图例
plt.legend()
# 设置标题和坐标轴标签
plt.title('多条平滑曲线图')
plt.xlabel('时间')
plt.ylabel('数值')
# 显示图形
plt.show()
```
matplotlib在一张图中绘制不同学习率曲线
您可以使用Matplotlib库来绘制不同学习率的曲线。以下是一个示例代码,展示了如何在同一张图中绘制多条曲线:
```python
import matplotlib.pyplot as plt
# 定义学习率和对应的损失值
learning_rates = [0.1, 0.01, 0.001]
losses = [[0.5, 0.4, 0.3, 0.2, 0.1],
[0.6, 0.5, 0.4, 0.3, 0.2],
[0.7, 0.6, 0.5, 0.4, 0.3]]
# 绘制曲线
for i in range(len(learning_rates)):
plt.plot(losses[i], label='lr={}'.format(learning_rates[i]))
# 添加图例、标题和坐标轴标签
plt.legend()
plt.title('Learning Rate Comparison')
plt.xlabel('Iteration')
plt.ylabel('Loss')
# 显示图形
plt.show()
```
这段代码中,我们定义了三个不同的学习率和对应的损失值。然后使用循环来绘制每个学习率对应的曲线,通过`label`参数为每条曲线添加标签。最后,我们添加图例、标题和坐标轴标签,并显示图形。
您可以根据实际情况修改学习率和损失值的数据,以及其他绘图参数来满足您的需求。希望对您有帮助!
阅读全文