我使用
ggplotly
从 ggplot2 创建了一个散点图。
我想获取所选/放大的数据点的表格,但我找不到方法来做到这一点。
library(ggplot2)
library(plotly)
p <- ggplotly(plot.rel.kinship)
htmlwidgets::saveWidget(as_widget(p), "scatterplot.html")
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")
仍然无法根据散点图上点的选择来更新数据表。
在
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)
plotly
在开发版本中有一个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)