Python - 绘制时间序列数据并使用线连接两点

标签 python dataframe plot graph time-series

虽然这看起来并不困难,但对于我的一生来说,我无法弄清楚这一点。任何帮助将不胜感激。这是我的场景:

我有一个数据框 df1,其中包含日期和价格。我可以使用这些数据使用 matplotlib.pyplot 绘制图表。到目前为止还不错。

我有另一个数据框 df2,它再次包含日期和价格信息,但只有 6 行。现在,我需要将 df2 的前两行视为两个点(x 轴为日期,y 轴为价格),并将它们连接到上面绘制的图表上。与接下来的两行相同,依此类推。 (df2 中会有更多行,但我希望您能明白)。

我尝试在两个 dfs 上依次调用plot() - 结果是,当调用 df2.plot() 时,使用 df1.plot() 绘制的图形被删除,并绘制 df2 线。

下面是我需要的结果。 enter image description here

最佳答案

df = pd.read_csv(r'https://vincentarelbundock.github.io/Rdatasets/csv/fpp2/goog200.csv', index_col=0)
df2 = df.loc[[57, 98, 169]]

plt.plot(df['time'], df['value'])
plt.plot(df2['time'], df2['value'])
plt.show()

enter image description here

<小时/>

按评论编辑

(归功于 user23564 在OP评论中的链接答案)

df = pd.read_csv(r'https://vincentarelbundock.github.io/Rdatasets/csv/fpp2/goog200.csv', index_col=0)
df2 = df.loc[[57, 98, 169, 200]].reset_index()

plt.plot(df['time'], df['value'])
for i in range(0, len(df2), 2):
    plt.plot(df2.loc[i:i+1, 'time'], df2.loc[i:i+1, 'value'], c='grey')
plt.show()

enter image description here

关于Python - 绘制时间序列数据并使用线连接两点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57007439/

相关文章:

python - 向后移植函数修饰符到 python2.1

python - 在 pandas 中切片串联数据框

python - 同一张图上的 Matplotlib 极轴和笛卡尔轴

r - 是否可以在 R 中创建没有连续数据的 3d 等高线图?

python - 为 groupby 编写自己的自定义聚合函数

r - 将 R 表达式中的向量变量组合为绘图文本

python - 利布罗萨 0.8.0 |人声分离输出有效,但速度高达 200%

python - 在 if 语句后使用变量

Python 为 Blur.io 签署 EIP-712 消息

r - 如何每隔一行将行添加到R数据框中?