【问题标题】:R: plot last N observations in data panel updated daily from website [duplicate]R:在数据面板中绘制最后 N 个观察值,每天从网站更新 [重复]
【发布时间】:2021-06-25 17:05:08
【问题描述】:

我有一个数据框面板数据

这是一个示例 df

date    code_ID name_ID X_Value Y_Value
2021-03-10T17:00:00 13  Alpha   372 621
2021-03-11T17:00:00 13  Alpha   608 4578
2021-03-12T17:00:00 13  Alpha   515 4618
2021-03-13T17:00:00 13  Alpha   320 1522
2021-03-14T17:00:00 13  Alpha   323 1531
2021-03-15T17:00:00 13  Alpha   329 4663
2021-03-16T17:00:00 13  Alpha   212 4281
2021-03-17T17:00:00 13  Alpha   304 419
2021-03-18T17:00:00 13  Alpha   462 761
2021-03-10T17:00:00 17  Beta    115 3664
2021-03-11T17:00:00 17  Beta    151 4362
2021-03-12T17:00:00 17  Beta    141 4733
2021-03-13T17:00:00 17  Beta    137 3068
2021-03-14T17:00:00 17  Beta    106 4378
2021-03-15T17:00:00 17  Beta    67  4403
2021-03-16T17:00:00 17  Beta    166 1549
2021-03-17T17:00:00 17  Beta    126 9
2021-03-18T17:00:00 17  Beta    179 2871
2021-03-10T17:00:00 8   eta-firm    2155    181
2021-03-11T17:00:00 8   eta-firm    2845    4446
2021-03-12T17:00:00 8   eta-firm    3477    4212
2021-03-13T17:00:00 8   eta-firm    2950    914
2021-03-14T17:00:00 8   eta-firm    3023    1155
2021-03-15T17:00:00 8   eta-firm    2822    4920
2021-03-16T17:00:00 8   eta-firm    2184    4562
2021-03-17T17:00:00 8   eta-firm    2026    1021
2021-03-18T17:00:00 8   eta-firm    2531    1227
2021-03-10T17:00:00 6   phi hotel   866 4785
2021-03-11T17:00:00 6   phi hotel   991 873
2021-03-12T17:00:00 6   phi hotel   971 2824
2021-03-13T17:00:00 6   phi hotel   953 1113
2021-03-14T17:00:00 6   phi hotel   604 4851
2021-03-15T17:00:00 6   phi hotel   398 1364
2021-03-16T17:00:00 6   phi hotel   672 2210
2021-03-17T17:00:00 6   phi hotel   986 3668
2021-03-18T17:00:00 6   phi hotel   1058    4518

如何使用 ggplot2 按 code_id/time 绘制 X-Y 的最后 N 个观测值而不删除行?

我实际使用的代码:

ggplot(data=df, aes(x = X_Value, y = Y_Value, color = name_ID)) +
  geom_line( arrow = arrow(angle = 30, length = unit(0.09, "inches"), ends = "last", type = "closed"))

【问题讨论】:

  • 您需要在绘图之前对数据进行子集化。如何子集已经在这里回答:stackoverflow.com/questions/53994497/…
  • 事实是我不想删除行或创建子集 df。有没有办法让它在 ggplot 代码中实现?
  • 不。 ggplot 是一个绘图工具。它会绘制您传入的任何内容。如果您不想绘制数据,则不要将其绘制进去。我想您可以创建自己的自定义几何图层来为您进行子集,但这只是隐藏子集,没有消除需要。您不必将子集数据保存在任何地方,只需将其作为 data= 参数传入即可。我不确定您为什么要如此努力地避免子集化。有什么你还没有提到的原因吗?
  • 没有理由。我宁愿只使用一个数据框。但是我尝试使用by (df, df $ code_ID, FUN = tail, 11),但它不会创建我的数据子集。我做错了什么?
  • 您似乎选择了一个实际上并未返回可用于绘图的 data.frame 的问题的答案。如果你只是想使用base R,试试do.call("rbind", (by(df, df$code_ID, FUN = tail, 11)))

标签: r ggplot2 panel-data


【解决方案1】:

这很好用do.call("rbind", (by(df, df$code_ID, FUN = tail, 11)))

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-05-28
    • 2019-02-19
    • 1970-01-01
    • 2021-02-23
    • 1970-01-01
    相关资源
    最近更新 更多