使用日期和时间创建高亮度线图

时间:2017-12-19 11:09:15

标签: r ggplot2 highcharts tidyverse

我想用my data file 创建一个简单的高亮度折线图。 所以首先我改变了我的数据,以便R识别日期和时间。

library("tidyverse")
library("ggplot")
library("highcharter")
Moisture_kurokawa <- read_csv("~/Data/Moisture kurokawa.csv")

 mutate(Moisture_kurokawa, 
   timestamp = lubridate::mdy_hms(sprintf("%s %s", Date, Time))) %>% 
     select(-Date, -Time) %>% 
      gather(W, value, -timestamp) -> moisture_long

所以在此之后我尝试创建一个简单的高图,所以我尝试了

hchart(moisture_long, "line", hcaes(x = timestamp, y = value, group = W))

我得到了图表,但它没有显示数据。任何帮助都会非常感激。

谢谢。

结果图片:

1 个答案:

答案 0 :(得分:2)

尝试将timestamp转换为字符:

mutate(Moisture_kurokawa, 
 timestamp = lubridate::mdy_hms(sprintf("%s %s", Date, Time))) %>% 
 select(-Date, -Time) %>% 
 gather(W, value, -timestamp) -> moisture_long

moisture_long$timestamp <- as.character(moisture_long$timestamp)
hchart(moisture_long, type="line", hcaes(x=timestamp, y=value, group = W))

更好的解决方案是:

library("tidyverse")
library("highcharter")
Moisture_kurokawa <- read_csv("./Moisture kurokawa.csv") %>%
  na.omit() %>%
  mutate(timestamp = lubridate::mdy_hms(sprintf("%s %s", Date, Time)))

hc <- highchart(type="stock")
for (k in names(Moisture_kurokawa)[3:7]) {
  hc <- hc_add_series_times_values(hc=hc, dates=Moisture_kurokawa$timestamp, 
            values=pull(Moisture_kurokawa, k), name = k)
}
hc

enter image description here