如何在同一张图中画两条折线?
时间: 2024-05-04 13:19:32 浏览: 93
可以使用 Matplotlib 库来在同一张图中画两条折线。以下是一个简单的例子:
```python
import matplotlib.pyplot as plt
# x轴数据
x = [1, 2, 3, 4, 5]
# y轴数据1
y1 = [1, 3, 2, 4, 5]
# y轴数据2
y2 = [2, 4, 1, 5, 3]
# 绘制第一条折线
plt.plot(x, y1, label='Line 1')
# 绘制第二条折线
plt.plot(x, y2, label='Line 2')
# 添加图例
plt.legend()
# 显示图形
plt.show()
```
在这个例子中,我们先定义了 x 轴数据和两条 y 轴数据 y1 和 y2。然后,我们使用 `plt.plot()` 函数分别绘制了两条折线,每条折线都有一个标签。最后,我们添加了一个图例,以便在图像上标识每条折线的含义,并使用 `plt.show()` 函数显示了图像。
相关问题
在使用model = ARIMA(train_data_arr, order=(0, 1, 1))进行训练后,想要对在测试集test_data_arr上进行预测,并打印真实值和预测值的对照表,计算相对误差和残差,同时绘制预测值和真实值的图(在同一张图中显示,两条折线使用不同的颜色),怎么做
在使用ARIMA模型进行训练后,可以使用`forecast`方法对测试集进行预测,并计算相对误差和残差,同时使用Pandas库打印真实值和预测值的对照表,并使用Matplotlib库绘制预测值和真实值的图。下面是一个示例代码:
```python
import pandas as pd
import numpy as np
from statsmodels.tsa.arima_model import ARIMA
import matplotlib.pyplot as plt
# 训练 ARIMA 模型
model = ARIMA(train_data_arr, order=(0, 1, 1))
model_fit = model.fit(disp=0)
# 对测试集进行预测
predictions = model_fit.forecast(steps=len(test_data_arr))[0]
# 计算相对误差和残差
relative_errors = np.abs((test_data_arr - predictions) / test_data_arr)
residuals = test_data_arr - predictions
# 打印真实值和预测值的对照表
df = pd.DataFrame({'True': test_data_arr, 'Predicted': predictions})
print(df)
# 绘制预测值和真实值的图
plt.plot(test_data_arr, label='true')
plt.plot(predictions, label='predicted')
plt.legend()
plt.show()
```
在这个例子中,我们首先训练了ARIMA模型,并使用`forecast`方法对测试集进行预测,得到预测结果`predictions`。然后,我们计算相对误差和残差,并使用Pandas库打印真实值和预测值的对照表。最后,我们使用Matplotlib库绘制预测值和真实值的图,其中`plot`函数用于绘制折线图,`label`用于设置图例,`legend`用于显示图例,`show`用于显示图形。
要在同一张图中显示预测值和真实值的折线图,只需要在`plot`函数中分别传递`test_data_arr`和`predictions`作为参数,并使用不同的颜色区分它们即可。例如,可以将真实值的折线设置为蓝色,将预测值的折线设置为红色,代码如下:
```python
plt.plot(test_data_arr, color='blue', label='true')
plt.plot(predictions, color='red', label='predicted')
plt.legend()
plt.show()
```
这样,就可以在同一张图中显示预测值和真实值的折线图,并使用不同的颜色区分它们。
matlab如何在同一张图里绘制多条带有数据标记的折线图。数据标记可以是圆圈、方块、三角形等任何形状,用于突出显示每个数据点的位置和值。
可以使用 `plot` 函数绘制多条折线图,并使用 `scatter` 函数添加数据标记。具体步骤如下:
1. 定义 x 轴和 y 轴的数据。
```matlab
x = [1:10];
y1 = [10 9 8 7 6 5 4 3 2 1];
y2 = [1 2 3 4 5 6 7 8 9 10];
```
2. 绘制折线图。
```matlab
figure;
hold on;
plot(x, y1, 'r--');
plot(x, y2, 'b-');
```
3. 添加数据标记。
```matlab
scatter(x, y1, 'ro');
scatter(x, y2, 'bs');
```
4. 添加图例和标签。
```matlab
legend('Line 1', 'Line 2');
xlabel('X Axis');
ylabel('Y Axis');
```
完整代码如下:
```matlab
x = [1:10];
y1 = [10 9 8 7 6 5 4 3 2 1];
y2 = [1 2 3 4 5 6 7 8 9 10];
figure;
hold on;
plot(x, y1, 'r--');
plot(x, y2, 'b-');
scatter(x, y1, 'ro');
scatter(x, y2, 'bs');
legend('Line 1', 'Line 2');
xlabel('X Axis');
ylabel('Y Axis');
```
运行后会在同一张图里绘制两条折线图,并且每个数据点都有对应的数据标记。
阅读全文