【发布时间】:2021-02-09 12:26:32
【问题描述】:
我想在 Shiny R 中以交互方式显示 VennDiagram::venn.diagram()。
但是,函数 venn.diagram() 需要 filename 属性,因为它会生成外部 TIFF 文档。
因此,我应该使用什么函数来根据用户输入 (input$SELECTION) 动态生成维恩图?
我想我应该使用函数draw.single.venn、draw.triple.venn、draw.pairwise.venn、draw.quad.venn,但我不知道高级需要多少个venns。
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", "gg"), Dimensions=c("ff", "gg"), 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)
【问题讨论】:
-
或许this 会有所帮助?它建议你可以设置
filename=NULL... -
Limey,谢谢,就是这样!通过从您链接到的那个页面添加整个
display_venn-函数,然后在我的原始代码中编写display_venn(data)(而不是venn.diagram(data),它确实有效!--你想写一个完整的回复以便我可以投票和接受? -
感谢您的提议,但不,谢谢。我不觉得一个简单的“阅读文档”解决方案值得称赞。 :)
-
嗯,在文档中找到正确的位置有时本身就是一项伟大的壮举!这只是几个虚拟点......它可能会帮助将来的其他人立即看到解决方案:-) 但如你所愿!
-
@Limey:嗯,我很佩服你的谦虚,也许你是对的。然而,SO 不仅仅是帮助 anpami,而是帮助所有的人。请让我鼓励你把它写下来作为答案。
标签: r shiny venn-diagram