首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将outputId传递给ggplotly()

将outputId传递给ggplotly()
EN

Stack Overflow用户
提问于 2017-05-30 16:10:23
回答 1查看 331关注 0票数 0

我刚刚开始实习,我的第一个任务是通过将所有现有的ggplot图更新为Plotly图来改进一个闪亮的应用程序。我对R和Shiny是个新手,所以我在入门时遇到了一些问题。

目前,此应用程序中的一个图形生成如下:

代码语言:javascript
复制
    output$barBoxPlot <- renderUI({
      plotOutput("Barplot", width = 700, height = 300
                 , click = "plot_click"
                 , hover = "plot_hover"
                 , brush = "plot_brush")
    })

其中"Barplot“是一个outputId,它对应于在代码的另一部分中生成的ggplot图。

我尝试使用ggplotly()函数将此图("Barplot")绘制为Plotly图,使用如下所示:

代码语言:javascript
复制
output$barBoxPlot <- renderPlotly({
    ggplotly(<insert graph here>)
})

但是,我不知道如何将"Barplot“参数(这是一个outputId)传递给ggplotly()。ggplotly接受一个ggplot图的实例,而不是一个outputId。

有没有办法把outputId传入ggplotly()?

谢谢!

EN

回答 1

Stack Overflow用户

发布于 2017-05-30 16:21:29

我会把这个放在评论里,但由于声誉的原因还不能这样做:

有多种方法可以解决这个问题,而无需尝试将outputID传递给ggplotly()

  1. 中的reactive中,直接使用ggplotly() (如果您不需要原始的ggplot函数或接受return(ggplotly(x))对象的reactive,则将其放入您的reactive中

编辑以澄清2:

plotOutput中的Barplot应该有一个服务器条目,如下所示:

代码语言:javascript
复制
output$Barplot <- renderPlot({
  ggplot(data, aes(...)) # etc
})

将代码放入反应式中,如下所示:

代码语言:javascript
复制
barplot_ggplot <- reactive({
  ggplot(data, aes(...)) # etc
})

然后,您可以在output$Barplot中作为barplot_ggplot()使用它,在renderPlotly()中作为ggplotly(barplot_ggplot())使用它。

我希望这能更清楚一点。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/44256877

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档