在 plotly 中为 datetime 对象设置 x 轴超过一天

Set x-axis for datetime object for more than one days in plotly

我正在尝试创建一个 plotly 条形图,x 轴为日期时间,y 轴为值。我得到一个奇怪的 x 轴,其中我看到的日期比需要的多得多。通常,我希望只有 4 个带有特定日期时间的条形图。只有当我使用相同的日期时,我才会得到预期的结果,假设我的所有值都是 "2011-06-04"

library(plotly)
datetime<-c("2011-06-04 12:00:00","2011-06-04 14:00:00","2011-06-04 15:00:00","2011-07-04 18:00:00")
name<-c(5,10,15,20)
SAMPLE<-data.frame(datetime,name)
SAMPLE$datetime<-as.POSIXct(SAMPLE$datetime,format="%Y-%m-%d %H:%M:%S")

fig <- plot_ly(SAMPLE, x = ~datetime, y = ~name, type = 'bar',
               marker = list(color = 'rgb(158,202,225)',
                             line = list(color = 'rgb(8,48,107)',
                                         width = 1.5)))

fig

预计:

鉴于:

plotly 默认根据您的数据范围创建 x-axis。最小值和最大值之间的步长是等距的。连续时间轴 - 在我眼中没有什么“奇怪”的(它对数字数据也是如此)。

但是,如果您想按类别查看数据,可以使用 factor():

library(plotly)
datetime<-c("2011-06-04 12:00:00","2011-06-04 14:00:00","2011-06-04 15:00:00","2011-07-04 18:00:00")
name<-c(5,10,15,20)
SAMPLE<-data.frame(datetime,name)
SAMPLE$datetime<-as.POSIXct(SAMPLE$datetime,format="%Y-%m-%d %H:%M:%S")

fig <- plot_ly(SAMPLE, x = ~factor(datetime), y = ~name, type = 'bar',
               marker = list(color = 'rgb(158,202,225)',
                             line = list(color = 'rgb(8,48,107)',
                                         width = 1.5)))

fig