r:如何以ggvis格式(例如13:00)打印带有时间的日时间直方图

r:如何以ggvis格式(例如13:00)打印带有时间的日时间直方图,r,datetime,histogram,interactive,ggvis,R,Datetime,Histogram,Interactive,Ggvis,我有一个带有datetime对象的data.frame,从csv文件中读取,并从lubridate包中使用dmy\u hm()转换为datetime对象。我想打印一个带有时间分布的柱状图,与日期无关。下面是一个看起来已经相当不错的示例: library(dplyr) library(ggvis) library(lubridate) # Create Example GESPEICHERT <- c(rep("01/05/2016 15:26",times=10),

我有一个带有datetime对象的data.frame,从csv文件中读取,并从lubridate包中使用
dmy\u hm()
转换为datetime对象。我想打印一个带有时间分布的柱状图,与日期无关。下面是一个看起来已经相当不错的示例:

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://stackoverflow.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")
库(dplyr)
图书馆(ggvis)
图书馆(lubridate)
#创建示例
GESPEICHERT%
变异(UHRZ_NUM=小时(格斯佩切特)*60+分钟(格斯佩切特))%>%#时间以分钟为单位,无需
变异(GESP_UHRZEIT=format(GESPEICHERT,format=“%H:%M”))%>%http://stackoverflow.com/questions/9839343/extracting-time-from-posixct
变异(GESP_UHRZEIT=as.POSIXct(GESP_UHRZEIT,format=“%H:%M”)->df_时间
#密谋
df_时间%>%
ggvis(x=~GESP_UHRZEIT)%>%
图层直方图()%>%
缩放日期时间(“x”,nice=“分钟”,label=“白天”)

我的x轴有两个问题:

  • 我希望x轴以15:00而不是03:00的形式显示时间

  • 它在两面都显示了今天的日期和第二天的日期,因为在我的代码中,我用
    mutate(GESP_UHRZEIT=format(GESPEICHERT,format=“%H:%M”)
    删除了日期,所以将今天的日期作为日期。 我怎样才能摆脱它?(我可以只创建一个时间对象吗?我可以将其转换为数字,但仍然显示为时间吗?)

  • 如果有人能给我一些建议,我将不胜感激。替代软件包,改变数据结构,每一个想法都是受欢迎的

    补充问题:
    如果有人知道如何使binwidth交互(在这种情况下!),请告诉我。这是没有必要的,但会是一个很好的功能为我。我在有数字的情况下这样做,但在datetime对象上没有成功。

    只需将正确格式的代码添加到管道中即可:

    > df_time %>%
         ggvis(x=~GESP_UHRZEIT) %>% 
         layer_histograms() %>% 
         scale_datetime("x", nice = "minute",label="daytime") %>%
         add_axis(type="x",format="%H:%M")
    
    这将给出一个只有小时:分钟时间的绘图,而不显示任何日期