如何解决在 Shiny R 中显示维恩图
我想在 Shiny R 中以交互方式显示 vennDiagram::venn.diagram()
。
但是,函数 venn.diagram()
需要一个 filename
属性,因为它生成外部 TIFF 文档。
因此,我应该使用什么函数根据用户输入 (input$SELECTION
) 动态生成维恩图?
我想我应该使用函数draw.single.venn
、draw.triple.venn
、draw.pairwise.venn
、draw.quad.venn
,但我不知道高级有多少我需要的维恩斯。
library(shiny)
library(venn.Diagram)
# Define UI ----
ui <- fluidPage(
titlePanel("Title"),sidebarLayout(
sidebarPanel(
checkBoxGroupInput(
"SELECTION",label = "Select your subsets",choices = list("Web of Science" = "WoS","Scopus" = "Scopus","Dimensions" = "Dimensions","LENS" = "LENS"),selected = c("WoS","Scopus")
),mainPanel(
plotOutput("venn")
)
)
)
# Define server logic ----
server <- function(input,output) {
output$venn <- renderPlot({
data <- list(WoS=c("ff","gg"),Scopus=c("ff",Dimensions=c("ff",LENS=c("ff","gg"))
# select only those elements that are named in input$SELECTION
data <- data[input$SELECTION]
# this will not work
venn.diagram(data)
})
}
# Run the app ----
shinyApp(ui = ui,server = server)
解决方法
Limey 在评论中发布了正确答案,来自 this source。
首先,我添加了这个功能:
display_venn <- function(x,...){
library(VennDiagram)
grid.newpage()
venn_object <- venn.diagram(x,filename = NULL,...)
grid.draw(venn_object)
}
其次,我将 venn.diagram(data)
替换为 display_venn(data)
。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。