我刚刚开始实习,我的第一个任务是通过将所有现有的ggplot图更新为Plotly图来改进一个闪亮的应用程序。我对R和Shiny是个新手,所以我在入门时遇到了一些问题。
目前,此应用程序中的一个图形生成如下:
output$barBoxPlot <- renderUI({
plotOutput("Barplot", width = 700, height = 300
, click = "plot_click"
, hover = "plot_hover"
, brush = "plot_brush")
})其中"Barplot“是一个outputId,它对应于在代码的另一部分中生成的ggplot图。
我尝试使用ggplotly()函数将此图("Barplot")绘制为Plotly图,使用如下所示:
output$barBoxPlot <- renderPlotly({
ggplotly(<insert graph here>)
})但是,我不知道如何将"Barplot“参数(这是一个outputId)传递给ggplotly()。ggplotly接受一个ggplot图的实例,而不是一个outputId。
有没有办法把outputId传入ggplotly()?
谢谢!
发布于 2017-05-30 16:21:29
我会把这个放在评论里,但由于声誉的原因还不能这样做:
有多种方法可以解决这个问题,而无需尝试将outputID传递给ggplotly()。
在
reactive中,直接使用ggplotly() (如果您不需要原始的ggplot函数或接受return(ggplotly(x))对象的reactive,则将其放入您的reactive中编辑以澄清2:
plotOutput中的Barplot应该有一个服务器条目,如下所示:
output$Barplot <- renderPlot({
ggplot(data, aes(...)) # etc
})将代码放入反应式中,如下所示:
barplot_ggplot <- reactive({
ggplot(data, aes(...)) # etc
})然后,您可以在output$Barplot中作为barplot_ggplot()使用它,在renderPlotly()中作为ggplotly(barplot_ggplot())使用它。
我希望这能更清楚一点。
https://stackoverflow.com/questions/44256877
复制相似问题