闪亮反应表中的ggplot2 scale_x_date

时间:2018-08-09 13:57:14

标签: r ggplot2 shiny shiny-reactivity

我有一个Shiny应用程序,它既有一个反应性表,又有一个将反应性表用作数据集的ggplot2折线图(时间序列)。我在折线图中使用scale_x_date(date_breaks = "1 week"),看到的日期的minmax值随反应表而适当地改变。

我的问题是我希望将周间隔设置为星期六(与我们的财政周结束以及响应式表中的所有时间戳相对应),但是ggplot2默认显示为星期一。如何更改x轴以显示星期六,但又可以根据反应式表适当缩放?

2 个答案:

答案 0 :(得分:0)

这样从here借钱但使用lubridate设置前一个星期六的最低休息时间怎么样?

library(lubridate)

scale_x_date(breaks = seq(floor_date(min(data.set$week.start), unit = 'week',
   week_start = getOption('lubridate.week.start', 6)),  max(data.set$week.start),by="week"),
   labels = date_format(format = "%Y-%m-%d"))

答案 1 :(得分:0)

我只需要

output$fcstlinechart_weekly <- renderPlotly({
p1 <- ggplot2::ggplot(data= my_reactive_table(),
aes(x=Week_End_Date,y=Forecast)+
  geom_line()+ scale_x_date(
   breaks= unique(data_frame_source_for_reactive_table$Week_End_Date))
p2 <- ggplotly(p1)
p2$elementId <- NULL
p2
})

并且绘图渲染“足够聪明”,仅显示过滤后的反应表中存在的日期值。