返回在绘图散点图中选择的数据点

gae*_*cia 4 r datatables shiny plotly r-plotly

我使用 ggplot2 创建了一个情节散点图ggplotly

我想获得一个选择/放大的数据点的表格,但我找不到办法做到这一点。

library(ggplot2)
library(plotly)

p <- ggplotly(plot.rel.kinship)
htmlwidgets::saveWidget(as_widget(p), "scatterplot.html")
Run Code Online (Sandbox Code Playgroud)

在 plotly 论坛上似乎有一个类似的未回答的问题:

https://community.plot.ly/t/get-datapoints-in-currently-zoomed-view/259

这个问题似乎也相关:

通过 Shiny 中的串扰将 Plotly 与 DT 一起使用

感谢您的帮助。

在此处输入图片说明

更新:

library(crosstalk)

a <- datatable(king.kin.subset)

kinship.plotly.table <- bscols(widths = c(6, 4), p, a)

htmltools::save_html(kinship.plotly.table, "scatterplot_table.html")
Run Code Online (Sandbox Code Playgroud)

仍然无法根据散点图上的点选择来更新数据表。

在此处输入图片说明

MLa*_*oie 6

plotly文档中,它说可以在不shiny使用 的情况下链接视图,使用crosstalk. 您没有提供可重现的示例,因此这里是使用iris数据集的示例。你可以试试:

library(plotly)
library(crosstalk)
library(DT)


sd <- SharedData$new(iris)

a <- plot_ly(sd, x = ~Sepal.Width, y = ~Petal.Width) %>% 
  add_markers(alpha = 0.5) %>%
  highlight("plotly_selected", dynamic = TRUE)


options(persistent = TRUE)

p <- datatable(sd)

bscols(widths = c(6, 4), a, p)
Run Code Online (Sandbox Code Playgroud)

plotly在开发版本 a 中有,table但我无法弄清楚如何在上面的示例中使用它。DT更容易,但你也许可以让它工作。希望能帮助到你。

在此处输入图片说明

编辑:有了ggplotly,你可以试试这个:

d <- highlight_unit(iris)
a <- ggplotly(ggplot(data = d, aes(x = Sepal.Width, y = Petal.Width)) + geom_point()) %>%
  highlight("plotly_selected", dynamic = TRUE)

options(persistent = TRUE)

p <- datatable(d)

bscols(widths = c(6, 4), a, p)
Run Code Online (Sandbox Code Playgroud)