【问题标题】:Color Fill with R VennDiagram: "Unexpected parameter length for 'fill'"使用 R VennDiagram 进行颜色填充:“'填充'的意外参数长度”
【发布时间】:2021-04-24 16:52:02
【问题描述】:

我使用维恩图来可视化values_onevalues_two 之间的重叠。

默认结果是黑白的,但我想用颜色填充它。基于this tutorial,我使用RColorBrewer;但是,我收到以下错误消息:

VennDiagram::draw.pairwise.venn 中的错误(area1 = length(x[1]), area2 = length(x[[2]]), : 'fill' 的参数长度异常

我做错了什么,我该如何解决?

感谢您的帮助!

# ------------------
# reproducible values
# ------------------
values_one <- c("Physical Review B", "IFAC Papersonline", "Journal Of High Energy Physics", 
"Physical Review Letters", "Nuclear Fusion", "Physics Letters B")

values_two <- c("Lecture Notes", "Optics Infobase Conference Papers", "Physical Review B", "IFAC Papersonline", "Journal Of High Energy Physics", "Physical Review Letters")

# ------------------
# create VennDiagram
# ------------------
library("VennDiagram")
library("RColorBrewer")

myCol <- brewer.pal(3, "Pastel2")

venn.diagram(x = list(values_one, values_two)
             , category.names = c("WoS", "Scopus")
             , filename = paste0(filePath, "venn2019.png")
             , output=T
             , fill=myCol)

【问题讨论】:

    标签: r ggplot2 colors data-visualization venn-diagram


    【解决方案1】:

    尝试将myCol 限制为两个十六进制代码,而不是三个。

    编辑:

    由于 RColorBrewer::brewer.pal 对您可以直接选择的颜色数量有一个下限(n > 2),如果您只想要一种或两种颜色,您首先需要指定您要使用的调色板和然后子集特定的十六进制代码。比如像这样:

    myCol <- brewer.pal(8, "Pastel2")[c(1, 2)]
    myCol <- brewer.pal(8, "Pastel2")[c(1, 8)] # Or any other nice-looking combination
    

    【讨论】:

    • 谢谢;不幸的是,这不起作用:在 brewer.pal(2, "Pastel2") 中:n 的最小值为 3,返回请求的具有 3 个不同级别的调色板。 (此外,由于中心重叠,维恩图应显示两个带有 三个 空格的圆圈。)
    • 是的,非常正确。尝试brewer.pal(8, "Pastel2")[c(1, 2)] 或类似方法,仅从 Pastel2 中提取您想要的两个十六进制代码。我认为,中心重叠的颜色将由这两者决定。
    • 嗯,这很完美,它有效。太感谢了!您想将此解决方案编辑到您的帖子中,以便我可以投票并接受它吗?
    猜你喜欢
    • 1970-01-01
    • 2020-10-03
    • 1970-01-01
    • 1970-01-01
    • 2012-04-24
    • 1970-01-01
    • 1970-01-01
    • 2014-10-27
    • 2021-11-29
    相关资源
    最近更新 更多