r - 在 Shiny R 中显示维恩图
问题描述
我想VennDiagram::venn.diagram()
在 Shiny R 中以交互方式显示 a。
但是,该函数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)
解决方案
Limey 在评论中发布了正确答案,来自此来源。
首先,我添加了这个功能:
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)
.
推荐阅读
- python - 在字典中的列表值内添加整数
- mysql - 插入后 1 天自动删除行 (MySQL)
- node.js - MongoDB 的正则表达式查询
- python - 如何从字符串内部安全地获取字节文字
- c++ - 在 Windows 中为 Visual Studio 2019 编译 GLFW 静态库
- webview - 比较 Xamarin.Android 中相机和麦克风的 PermissionRequest 对象
- python - 无休止地重新提示用户,直到响应正确
- python-3.x - 如何在包含 numpy.ndarrays 的列/列的 pandas 数据帧上执行 StandardScaler?
- typescript - 找出类型的完全限定名
- r - 沿样带提取光栅像素的位置