我制作了一个小型的Shiny应用程序,可以显示一组条形图中的一些简单数据。其中一个图表是显示相对于日期绘制的时间间隔的条形图。当在R中离线运行应用程序时,这完全按照预期呈现,但是当我将其发布到shinyapps.io时,条形图被奇怪地反转并从图的顶部向下朝向x轴运行。例子:
我有一组类似的条形图,不是基于时间数据,似乎在发布和未发布时都能正常工作。该应用程序与反应元素纠缠在一起,因此我不确定如何提供最小的可重现示例,但在服务器端,该绘图使用以下方式呈现:
output$dayplot <- renderPlot({
p <- ggplot(myplotdata(), aes(day, var, fill=State, color=State)) +
geom_bar(stat="identity") +
xlab("Day") +
ylab(input$yvar) +
scale_x_continuous(breaks=pretty_breaks(10)) +
scale_y_datetime(breaks = date_breaks("1 hour"),
labels = date_format("%H:%M")) +
coord_cartesian(ylim = c(as.POSIXct("0:0:0", tz = "GMT", format="%H:%M:%S"),
as.POSIXct("12:00:00", tz = "GMT", format="%H:%M:%S"))) +
scale_fill_brewer(palette="Paired", type="qual") +
scale_color_brewer(palette="Paired", type="qual")
print(p)
})
我已多次阅读我的代码,但无法理解这种现象在离线工作时如何在网上出现,所以我并不完全确定要寻找什么。这也是我的第一个Shiny应用程序,因此对于可能导致此问题的任何想法和输入都非常受欢迎!
编辑: 我已经完成了所有代码,将其减少到最低限度。虽然我无法确切地确定触发问题的完全确定性,但是当格式化为POSIXct时,它似乎与我的时间变量在sys.date时间上有关。这在预览中工作得很好,但在闪亮的服务器上却没有。但是,通过在转换为POSIX之前将其粘贴到字符时间变量上手动将此日期设置为1970-01-01,似乎已解决了我的问题。因此,如果其他未来的读者遇到类似的问题,也许这个建议可能会有所帮助。