问题描述
一些包的 plot 函数,如 timetk、plot_ly 不会产生写在 renderPlot 函数中的 plot(output)。尽管当我在控制台中运行它时,同一段代码会返回输出(绘图)。而像 plot() 这样的函数,ggplot() 也可以完成这项工作。 为什么会这样?
这段带有 timetk 库的代码在 rstudio 控制台中提供输出:
dataset %>%
plot_time_series(.date_var = Year,.value = column1,.interactive = TRUE,.y_lab = "Amt",.x_lab = "Year",)
但是如果在 renderPlot 函数中写了同样的一块,它不会在 RShiny 应用程序上提供输出,只会显示一个空白的白屏。
UI:UI 代码都很好。我也写了一个 plotOutput("p1") 。
服务器:
output$p1 <- renderPlot({
dataset %>%
plot_time_series(.date_var = Year,)
})
解决方法
问题是(曾经)renderPlot
和plotOutput
用于基本图或ggplot。当您想要制作交互式 plotly
图表时,您必须使用 plotly::renderPlotly
和 plotly::plotlyOutput
。