在同一个图上绘制三条线(频率为 4 小时)

数据挖掘 Python 熊猫 绘图
2022-03-07 01:13:23

我想用 datetime 绘制图表。我看到了很多与我的问题相似的问题。但是那个答案对我不起作用。这是我使用的代码:

 data = pd.read_csv('p1.csv')
 df1 = pd.DataFrame(df1, columns=['date', 'time', 'x1', 'x2','x3'])
 data['date_time'] = pd.to_datetime(data['date'] + ' ' + data['time'])
data['date_time'] = pd.to_datetime(data['date_time'], format='%m/%d/%Y %H:%M:%S')
data.set_index('date_time',inplace = True)
plt.plot(data.index, data.x2)

绘图图: 在此处输入图像描述

谁能建议我解决这个问题?

读取后的 CSV 文件:

在此处输入图像描述

我想像这样绘制,但有日期: 在此处输入图像描述

1个回答

首先,为了以 4 小时的间隔绘制三个不同的线,您需要重新采样数据。(这就是您获得频率转换的方式)。你可以在这里阅读更多内容

pd.resample()

然后只要你的所有三个“线”都包含在同一个数据框中,你应该没有问题通过调用它们来绘制它们

three_lines = your data frame

plt.plot(three_lines)

尽管有一个注意事项 - 仅查看您的数据,但鉴于数据的规模差异,您可能无法获得所需的结果。换一种说法,当值在 100 左右的范围内绘制在同一图上时,值 < 1 可能是最小可见的。

希望这可以帮助。如果您需要任何进一步的说明,请发表评论。