r:如何在格式中打印日期时间的直方图13:00在ggvis
问题描述:
我有一个data.frame与日期时间对象,从csv文件读入,并从lubridate包转变成日期时间对象与dmy_hm()
。我想用时间分布打印一个直方图,与日期无关。下面是一个例子,它已经看起来不错:r:如何在格式中打印日期时间的直方图13:00在ggvis
library(dplyr)
library(ggvis)
library(lubridate)
# Create Example
GESPEICHERT <- c(rep("01/05/2016 15:26",times=10),
rep("13/05/2016 00:17",times=5),
rep("01/08/2016 12:05",times=10),
rep("17/04/1983 23:39",times=5),
rep("06/07/2015 09:36",times=10))
INFO <- c(rep("Bla",times=30),rep("Bla Bla",times=10))
df_time <- cbind.data.frame(GESPEICHERT,INFO,stringsAsFactors=FALSE)
df_time %>%
mutate(GESPEICHERT = dmy_hm(GESPEICHERT)) -> df_time
# Trying to reduce datetime Object to time
df_time %>%
mutate(UHRZ_NUM = hour(GESPEICHERT) * 60 + minute(GESPEICHERT)) %>% # Time in Minute Numbers, not necessary
mutate(GESP_UHRZEIT = format(GESPEICHERT,format="%H:%M")) %>% # http://*.com/questions/9839343/extracting-time-from-posixct
mutate(GESP_UHRZEIT = as.POSIXct(GESP_UHRZEIT,format="%H:%M")) -> df_time
# Plot
df_time %>%
ggvis(x=~GESP_UHRZEIT) %>%
layer_histograms() %>%
scale_datetime("x", nice = "minute",label="daytime")
我这里有两个问题,我的x轴:
我想在x轴上显示时间以例如15:00不是03PM
在双方它显示今天的日期和第二天的日期,因为在我的代码我删除日期
mutate(GESP_UHRZEIT = format(GESPEICHERT,format="%H:%M"))
所以它需要今天的日期作为日期。 我该如何摆脱? (我只能创建时间对象?我可以将其转换为数字,但仍然显示它的时间?)
如果有人可以给我一些提示,这将是大加赞赏。替代软件包,改变数据结构,每个想法都是值得欢迎的。
附加问题: 如果有人知道如何使binwidth互动(在这种情况下!),请告诉我。这是没有必要的,但对我来说是一个很好的功能。我在有数字的情况下做过,但是使用日期时间对象不成功。
答
只是正确的格式代码添加add_axis
你管:
> df_time %>%
ggvis(x=~GESP_UHRZEIT) %>%
layer_histograms() %>%
scale_datetime("x", nice = "minute",label="daytime") %>%
add_axis(type="x",format="%H:%M")
这将给只有小时图:分次,并没有显示出任何天。