如何将日期范围用于高位列范围图?

问题描述

我正在尝试使用Highcharter创建一个列范围图,其中该列表示日期范围。虽然这适用于整数,但不适用于日期。其他地块类型似乎可以很好地处理日期。

以天气df为例:

weather2 <- weather %>%
  filter(date <  mdy("03-31-2014"))%>% 
  mutate(low = date,high=date+30,id = row_number()) %>% 
  select(id,low,high)


hchart(weather2,type = "columnrange",hcaes(x = id,high=high,low=low)) 

该图仅用x轴标签呈现为空白。

但是,如果我仅将日期转换为整数,它将显示预期的范围。

weather3 <- weather %>%
  filter(date <  mdy("03-31-2014"))%>% 
  mutate(low = as.integer(date),high=as.integer(date+30),high)

hchart(weather2,low=low)) 

我也尝试添加%>% hc_yAxis(type = "datetime"),但这也无济于事。

谢谢!

解决方法

似乎columnrange绘图类型要求日期为时间戳格式。可以使用高级字符中的datetime_to_timestamp函数,然后使用hc_yAxis(type = "datetime")来转换它们。

weather2 <- weather %>%
  filter(date <  mdy("03-31-2014"))%>% 
  mutate(low = datetime_to_timestamp(date),high = datetime_to_timestamp(date+30),id = row_number()) %>% 
  select(id,low,high)


hchart(weather2,type = "columnrange",hcaes(x = id,high=high,low=low)) %>% 
hc_yAxis(type = "datetime")