首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >R-如何打印可扩展行的reactable中嵌套tibble中的ggplot对象?

R-如何打印可扩展行的reactable中嵌套tibble中的ggplot对象?
EN

Stack Overflow用户
提问于 2021-07-23 05:15:56
回答 2查看 113关注 0票数 2

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

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

代码语言:javascript
复制
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)
  ))

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

代码语言:javascript
复制
reactable(df %>% select(Species), details = function(index) {
    reactable(df$data[[index]])
  }
)

但是……我不知道如何打印"plot“列。例如,这不起作用:

代码语言:javascript
复制
reactable(df %>% select(Species), details = function(index) {
    print(df$plot[[index]])
  }
)

我尝试过像htmltools::img(df$plot[[index]])这样的超文本标记语言,但它们都不起作用。

有什么想法吗?谢谢!

EN

回答 2

Stack Overflow用户

发布于 2021-07-23 06:17:41

如果我们用ggplotly包装,那么它就可以工作了

代码语言:javascript
复制
library(plotly)
library(reactable)
library(ggplot2)
library(dplyr)
reactable(df %>% 
    select(Species), details = function(index) {
 ggplotly(df$plot[[index]])
})

-output

票数 1
EN

Stack Overflow用户

发布于 2021-07-29 02:48:08

实际上,我不需要plotly就解决了这个问题--您可以使用htmltools::plotTag。(谁知道呢?)看看这个:

代码语言:javascript
复制
reactable(df %>% select(Species), details = function(index) {
  htmltools::plotTag(df$plot[[index]], alt="plots")
})
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/68491572

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档