问题描述
我正在尝试使用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")