r - 如何在具有可扩展行的响应式(Reactive)中从嵌套的 tibble 打印 ggplot 对象?

标签 r image ggplot2 nested reactable

我在 R 中有一个带有嵌套行的 tibble,我为每行创建了一个 ggplot 对象。我想使用 reactable 的可扩展行功能打印这些图形。

我认为一个例子可以最好地解释这一点。为简单起见,我将使用 iris。首先,我们采用 iris,将其嵌套在“Species”中,然后创建一个名为“plot”的列,其中包含 ggplot 对象:

library(dplyr)
library(reactable)
library(ggplot2)

df = iris %>%
  as_tibble() %>%
  nest_by(Species) %>%
  mutate(plot = list(
    ggplot(data, aes(x=Sepal.Length, y=Sepal.Width)) + geom_point() + ggtitle(Species)
  ))

可以在我们的数据框上创建一个可 react 对象,当您单击任何行时,它会吐出一个嵌套的可 react 对象:

reactable(df %>% select(Species), details = function(index) {
    reactable(df$data[[index]])
  }
)

但是...我想不出如何为打印“绘图”列做同样的事情。例如,这不起作用:

reactable(df %>% select(Species), details = function(index) {
    print(df$plot[[index]])
  }
)

我已经研究过一些 HTML 的东西,比如 htmltools::img(df$plot[[index]]) 但它都不起作用。

有什么想法吗?谢谢!!!!!!

最佳答案

我实际上不需要 plotly 就解决了这个问题——您可以使用 htmltools::plotTag。 (谁知道?)检查一下:

reactable(df %>% select(Species), details = function(index) {
  htmltools::plotTag(df$plot[[index]], alt="plots")
})

关于r - 如何在具有可扩展行的响应式(Reactive)中从嵌套的 tibble 打印 ggplot 对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68491572/

相关文章:

arrays - 如何创建和绑定(bind)空多维数组

image - Go base64图像解码

r - 将多个 ggplot2 绘图与网格对齐

html - 如何对多个图像施加相同的效果,但不影响我没有悬停的图像?

python - 使用 PIL 优化 .png 图像

R 无法同时映射到 ggplot 和使用 facet wrap

r - 如何将 ggplot 的 aes 参数传递给函数

r - R 中的堆栈类 - 更简洁的东西

r - read.table 中的错误

r - 根据其他 2 列中的值将值分配给新列