r-闪亮的两个情节和相声问题



我想在两个绘图(plotly(中显示数据,并希望能够通过使用串扰在另一个绘图中显示一个绘图的选定点。遗憾的是,我尝试过的都不起作用。在服务器功能之外定义共享数据的解决方案不是一个选项,因为我的应用程序中的数据来自其他反应和输入。下面是一个代表。

library(shiny)
library(plotly)
ui <- fluidPage(
sliderInput("rows", label = "# Rows", min = 50, max = 150, value = 100),
plotlyOutput("scatter1"),
plotlyOutput("scatter2")
)
server <- function(input, output, session) {
iris_new <- reactive({
iris[1:as.numeric(input$rows),]
})

sd <- SharedData$new(iris_new)

output$scatter1 <- renderPlotly({
plot_ly(
sd,
x = ~Sepal.Length, 
y = ~Sepal.Width,
color = ~Species,
type = "scatter",
mode = "markers"
)
})

output$scatter2 <- renderPlotly({
plot_ly(
sd,
x = ~Petal.Length, 
y = ~Petal.Width,
color = ~Species,
type = "scatter",
mode = "markers"
)
})
}
shinyApp(ui, server)

我还试着让SharedData$new(iris_new)成为像一样的反应性表达

iris_new <- reactive({
SharedData$new(iris[1:as.numeric(input$rows),])
})

在CCD_ 4中使用CCD_。我也尝试过sd$data(withSelection = T),但没有成功。奇怪的是,当我选择一个点时,它会起作用(尽管我不能再取消选择(。但当我尝试选择多个点(我实际上想要的(时,另一个情节没有反应。

我需要这个来处理plotly(而不是d3scatter、scatterD3等(!

尝试这个

library(shiny)
library(plotly)
ui <- fluidPage(
sliderInput("rows", label = "# Rows", min = 50, max = 150, value = 100),
plotlyOutput("scatter1"),
plotlyOutput("scatter2")
)
server <- function(input, output, session) {

iris_new <- reactive({
highlight_key(iris[1:as.numeric(input$rows),])
})

output$scatter1 <- renderPlotly({
plot_ly(
iris_new(),
x = ~Sepal.Length, 
y = ~Sepal.Width,
color = ~Species,
type = "scatter",
mode = "markers"
) %>% 
highlight("plotly_selected")
})

output$scatter2 <- renderPlotly({
plot_ly(
iris_new(),
x = ~Petal.Length, 
y = ~Petal.Width,
color = ~Species,
type = "scatter",
mode = "markers"
) %>% 
highlight("plotly_selected")
})
}
shinyApp(ui, server)

按住鼠标选择一个区域,双击绘图取消选择。

相关内容

  • 没有找到相关文章

最新更新