相关疑难解决方法(0)

使用 plotlyProxy 按名称删除跟踪(或在响应式上下文中访问输出模式)

我正在尝试使用该plotlyProxy()功能(此处记录)来允许闪亮应用程序的用户以最小的延迟添加和删除跟踪。

添加跟踪证明相对简单,但我很难弄清楚如何按名称删除跟踪(我只看到按跟踪编号删除的记录示例)

有没有办法使用名称删除痕迹plotlyProxy()

如果没有,有没有办法可以解析输出对象以推导出与给定名称相关联的跟踪编号?

我可以使用标准模式索引在交互式 R 会话中确定给定名称的关联跟踪号,但是当我尝试在闪亮的应用程序中应用相同的逻辑时,我收到一个错误:“$.shinyoutput 中的错误:从不允许闪亮的输出对象。”

下面是一个最小的例子。观察Remove按钮的观察者都没有实际工作,但他们应该对我试图实现的功能提出一个想法。


library(shiny)
library(plotly)

ui <- fluidPage(
  textInput("TraceName", "Trace Name"),
  actionButton("Add","Add Trace"),
  actionButton("Remove","Remove Trace"),
  plotlyOutput("MyPlot")
)

server <- function(input,output,session) {

  ## Creaing the plot
  output$MyPlot <- renderPlotly({
    plot_ly() %>%
      layout(showlegend  = TRUE)
  })

  ## Adding traces is smooth sailing
  observeEvent(input$Add,{
    plotlyProxy("MyPlot", session) %>%
      plotlyProxyInvoke("addTraces", list(x = rnorm(10),y = rnorm(10),
                                          type = "scatter",mode = "markers",
                                          name = input$TraceName))
  })

  ## Ideal …
Run Code Online (Sandbox Code Playgroud)

r shiny plotly r-plotly

5
推荐指数
1
解决办法
1908
查看次数

R 闪亮且有情节地获取图例点击事件

我有一个 R 闪亮页面,正在根据单击饼图过滤数据。如果我可以通过单击图例条目触发相同的过滤事件,那就太好了,但我似乎找不到事件触发器,因此它只是过滤该图表而不传播到其他图表。图例点击事件是否可以访问?

library(data.table)
library(plotly)
library(shiny)

dt = as.data.table(mtcars)


ui <- fluidPage(
  plotlyOutput("pie1"),
  plotlyOutput("pie2")
)


server <- function(input, output){

  gearDT = reactive({
    return(dt[,.N,by=gear])
  })

  cylDT = reactive({
    return(dt[,.N,by=cyl])
  })

  output$pie1 <- renderPlotly({

    plot_ly(gearDT(), labels = ~gear, values = ~N, type = "pie") %>%
      layout(showlegend = TRUE)


  })

  output$pie2 <- renderPlotly({

    plot_ly(cylDT(), labels = ~cyl, values = ~N, type = "pie")  %>%
      layout(showlegend = TRUE)


  })
}

shinyApp(ui = ui, server = server)
Run Code Online (Sandbox Code Playgroud)

r shiny plotly

3
推荐指数
1
解决办法
2426
查看次数

标签 统计

plotly ×2

r ×2

shiny ×2

r-plotly ×1