2

请在下面找到一个可复制的示例来解释我的问题(我正在使用与 Shiny R 包直接相关的操作控件 R 包):

library(ggplot2)
library(plotly)
library(manipulateWidget)
library(data.table)


my_data <- data.table(
  DAT_RLV = as.POSIXct(c("2017-01-20","2017-01-21","2017-01-22",
                         "2017-01-23","2017-01-24")),
  VOL_CSO = c(0,4,3,4,2))


graphe_conso <- ggplot(data = my_data)+
  geom_line(aes(x = DAT_RLV,y = VOL_CSO),colour = "darkgreen")+
  labs(x = "Date", y ="my_values")

graphe_conso <- ggplotly(graphe_conso)

目前,一切都很好。这是我得到的:

在此处输入图像描述

然后我想将此图表用作 Shiny 对象:

manipulateWidget::combineWidgets(graphe_conso)

我的 x 轴上的所有日期都已转换为另一种格式,我收到以下警告:

在此处输入图像描述

这是我在 x 轴上获得的信息:

在此处输入图像描述

任何提示都可以解决这个问题,非常感谢!

4

1 回答 1

0

当将 POSIXct 列转换为数字并乘以 1000 时,它显然得到了解决。然后在ggplotly命令中,您必须指定 x 轴的类型为“日期”。

然后它看起来是正确的并且Input to asJSON(keep_vec_names=TRUE)-error 消失了。但我其实不知道具体原因。Date/POSIXct 列显然存在一些错误。

library(ggplot2)
library(plotly)
library(manipulateWidget)
library(data.table)

my_data <- data.table(
  DAT_RLV = as.POSIXct(c("2017-01-20","2017-01-21","2017-01-22",
                         "2017-01-23","2017-01-24")),
  VOL_CSO = c(0,4,3,4,2))

my_data$DAT_RLV <- as.numeric(my_data$DAT_RLV)*1000
graphe_conso <- ggplot(data=my_data)+
  geom_line(aes(x = DAT_RLV, y = VOL_CSO, group = 1))+
  labs(x = "Date", y ="my_values")
graphe_conso <- ggplotly(graphe_conso) %>% 
  layout(xaxis = list(type = "date"))
manipulateWidget::combineWidgets(graphe_conso)
于 2019-07-24T11:47:56.030 回答