我正在尝试在我的 Shiny 应用程序中添加一项功能,用户可以单击散点图上的一个点,它将突出显示。这看起来很简单,但在下面的示例中,无论我尝试多少种变化,我似乎都无法突出显示任何内容。我已经查看了这篇文章和这篇文章中的建议,但它们似乎没有帮助。
任何见解将不胜感激!
# Define UI
ui <- fluidPage(
fluidRow(
column(6,
h3("Scatterplot"),
plotlyOutput("phylo_tree")),
)
)
# Define server logic
server <- function(input, output) {
# Phylogenetic Tree
output$phylo_tree <- renderPlotly({
# Create a scatter plot using plot_ly
scatter_plot <- plot_ly(data = mtcars, x = ~mpg, y = ~wt, type = "scatter", mode = "markers",
color = ~cyl, size = ~hp, text = ~paste("Car: ", rownames(mtcars)))%>%
# Highlight selected point
highlight(~mpg, on = "plotly_click",off = "plotly_doubleclick")
scatter_plot
})
}
# Run the application
shinyApp(ui, server)
我尝试过在这里记录参数的许多变体,但我始终得到相同的结果:在 R Shiny 应用程序中,单击时没有任何内容突出显示。
这不是
shiny
框架的问题,而是plotly
代码本身的问题。改为
scatter_plot <- mtcars |> highlight_key(~mpg) |>
plot_ly(x = ~mpg,y = ~wt,type = "scatter",mode = "markers",color = ~cyl,
size = ~hp,text = paste("Car: ",rownames(mtcars))) |>
highlight(on = "plotly_click",off = "plotly_doubleclick")
应该做你想做的事。