微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

在R Shiny中的表中插入ggplot barplot

如何解决在R Shiny中的表中插入ggplot barplot

我希望重新创建一个像这样的表,在其中将ggplot图形插入到单元格中。我想使用reactable生成我的表。

desired_table

关于如何进行的任何建议? 我以为也许可以使用ggsave()将图保存为png。但是我不知道要插入到表中。

任何帮助将不胜感激。谢谢。

解决方法

我自己也有同样的问题,我发现的方法是创建一个 htmlwidget,其中包含 ggplot。请记住,您可以在可反应单元格中包含任何 HTML 小部件,这就是使用迷你图时实际发生的情况。所以你可以尝试这样的事情:

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

data <- iris
#create a fake data with placeholders
data2 <-  data %>% group_by(Species) %>% summarise(Sepal.Length = unique(Species),Sepal.Width = unique(Species),Petal.Length = unique(Species),Petal.Width = unique(Species))

reactable(data2,columns = list(
  Sepal.Length = colDef(cell = function(value){
    subDB <- data[data$Species==value,]
    p<-ggplotly(
      ggplot(subDB,aes(x=Sepal.Length))+geom_density() + xlab("")
    )
    return(p)
  }),Sepal.Width = colDef(cell = function(value){
    subDB <- data[data$Species==value,aes(x=Sepal.Width))+geom_density() + xlab("")
    )
    return(p)
  }),Petal.Length = colDef(cell = function(value){
    subDB <- data[data$Species==value,aes(x=Petal.Length))+geom_density()+ xlab("")
    )
    return(p)
  }),Petal.Width = colDef(cell = function(value){
    subDB <- data[data$Species==value,aes(x=Petal.Width))+geom_density()+ xlab("")
    )
    return(p)
  })
))
,

所以我认为我没有见过有人将ggplots放入reactable的单元格中。下面的屏幕截图来自reactable examples。看来您可能必须定义一个HTML小部件或使用sparkline软件包提供的小部件。

enter image description here

不幸的是,我对html小部件的了解还不够多,仍然无济于事。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。