首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >绘制时间序列数据

绘制时间序列数据
EN

Stack Overflow用户
提问于 2022-04-19 21:34:20
回答 1查看 57关注 0票数 0

有人知道我如何绘制这个时间序列数据吗?我试着在24小时内用每个变电站的值来绘制这些数据,但是我一直在努力绘制这些数据,因为我不知道必须在一个地块中传递时间。

如果拥有某一条线路,这将是好的,一条线代表每个变电站(趋势线也是好的,但可以在以后加进去);

代码语言:javascript
复制
ggplot(substation_average, aes(x=Date, y=Substation)) +
    geom_line()

数据片段;

代码语言:javascript
复制
 Substation   `00:00` `00:10` `00:20` `00:30` `00:40` `00:50` `01:00` `01:10`
       <int>    <dbl>   <dbl>   <dbl>   <dbl>   <dbl>   <dbl>   <dbl>   <dbl>
1     511016    288.    289.    283.    277.    273.    268.    262.    256.
2     511029    106.    120.    127.    132.    143.    140.    137.    134.
3     511030    160.    156.    150.    144.    140.    138.    136.    133.
4     511033    181.    175.    181.    180.    177.    177.    179.    176.
5     511034    305.    302.    296.    295.    290.    286.    281.    280.
6     511035    133.    138.    134.    128.    127.    124.    120.    118.
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-04-19 21:55:16

您可以通过使用例如Substation将数据转换为长格式或整洁格式,从而为每个tidyr::pivot_longer获得一行。

代码语言:javascript
复制
library(tidyr)
library(ggplot2)

substation_average <- substation_average |>
  pivot_longer(-Substation, names_to = "time")

head(substation_average)
#> # A tibble: 6 × 3
#>   Substation time  value
#>        <int> <chr> <dbl>
#> 1     511016 00:00   288
#> 2     511016 00:10   289
#> 3     511016 00:20   283
#> 4     511016 00:30   277
#> 5     511016 00:40   273
#> 6     511016 00:50   268

ggplot(substation_average, aes(x = time, y = value, color = factor(Substation), group = Substation)) +
  geom_line()

数据

代码语言:javascript
复制
substation_average <- structure(list(
  Substation = c(
    511016L, 511029L, 511030L, 511033L,
    511034L, 511035L
  ), `00:00` = c(288, 106, 160, 181, 305, 133),
  `00:10` = c(289, 120, 156, 175, 302, 138), `00:20` = c(
    283,
    127, 150, 181, 296, 134
  ), `00:30` = c(
    277, 132, 144, 180,
    295, 128
  ), `00:40` = c(273, 143, 140, 177, 290, 127), `00:50` = c(
    268,
    140, 138, 177, 286, 124
  ), `01:00` = c(
    262, 137, 136, 179,
    281, 120
  ), `01:10` = c(256, 134, 133, 176, 280, 118)
), class = "data.frame", row.names = c(
  "1",
  "2", "3", "4", "5", "6"
))
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71931615

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档