【问题标题】:Python - Plot time series data and connect two points using linePython - 绘制时间序列数据并使用线连接两个点
【发布时间】:2019-11-22 05:59:07
【问题描述】:

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

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

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

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

下面是我需要的结果。

【问题讨论】:

标签: python dataframe plot graph time-series


【解决方案1】:
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()


根据评论编辑

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

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()

【讨论】:

  • 谢谢布伦丹!虽然我的错误是我没有上传正确的图像。我编辑过同样的。你能检查一下吗?感谢您的帮助
  • 谢谢布伦丹!我最终做到了这一点!不敢相信我之前想不出这么简单的解决方案。感谢您的帮助
猜你喜欢
  • 2018-03-05
  • 1970-01-01
  • 1970-01-01
  • 2015-07-29
  • 2013-03-14
  • 2016-02-27
  • 1970-01-01
  • 1970-01-01
  • 2021-04-25
相关资源
最近更新 更多