[英]Wrong colors for Venn diagram when the area of one circle is 0
为什么当一个圆的面积为 0 ("A" = 0) 与面积为 0.1 ("A" = 0.1) 时颜色会发生变化--> 比较示例 1 和 2。此外,如果 A 和 B 为 0,则圆圈是黑色而不是绿色(参见示例 3)。
library(eulerr)
# example 1
fit <- euler(c("A" = 0.1, "B" = 10, "A&B" = 5))
p1 <- plot(fit,
fills = list(fill = c("black", "blue", "green")),
labels = F)
p1
# example 2
fit <- euler(c("A" = 0, "B" = 10, "A&B" = 5))
p2 <- plot(fit,
fills = list(fill = c("black", "blue", "green")),
labels = F)
p2
# example 3
fit <- euler(c("A" = 0, "B" = 0, "A&B" = 5))
p3 <- plot(fit,
fills = list(fill = c("black", "blue", "green")),
labels = F)
p3
编辑:
我在这里找到了解决方法(见下文)。 但是颜色的顺序似乎很奇怪。 A 应该是黑色,B --> 蓝色和 A&B --> 绿色。 如果 none 是 0,这是正确的顺序 --> c("black", "blue", "green")。 但如果 A 或 B 为 0,则顺序不同,基本上就是它们在图中从左到右的显示方式。 奇怪的....
combo <- c(A=1, B = 10, "A&B" = 1)
fit <- euler(combo)
p <- plot(fit,
fills = list(fill =
if (combo["A"] == 0) {
c("green", "blue")
} else if (combo["B"] == 0) {
c("black", "green")
} else {
c("black", "blue", "green")
}
),
labels = F)
p
编辑:重新阅读您的帖子, euler正在按预期工作。
也许使用透明度,如下所示:
fit <- euler(c("A" = 0, "B" = 0, "A&B" = 5))
p3 <- plot(fit, fills = list(fill = c("black", "blue", "green"), alpha = 0.4),
legend = list(side = "right"))
p3
原始答案,仍然与理解重叠颜色有关......
颜色数量应与套数相匹配,在这种情况下,我们只有 2 套:A 和 B,所以我们只需要 2 种颜色,重叠颜色是通过“混合”重叠设置的颜色生成的,参见:
# R version 4.0.2
# eulerr_6.1.0
library(eulerr)
fit <- euler(c("A" = 1, "B" = 10, "A&B" = 5))
plot(fit, fills = list(fill = c("red", "green")), legend = list(side = "right"))
fit <- euler(c("A" = 0, "B" = 10, "A&B" = 5))
plot(fit, fills = list(fill = c("red", "green")), legend = list(side = "right"))
颜色是按顺序使用的。 如果A=0
则A=0
没有什么可填充A
,因此B
的区域用第一种颜色(黑色)填充, A&B
的区域用第二种颜色( blue
)填充。 在第三个示例中, A
和B
都没有填充,因此A&B
用第一种颜色填充。
如果值为 0,最简单的解决方案就是从向量中删除一个颜色(或多个)。例如。
# example 2
fit <- euler(c("A" = 0, "B" = 10, "A&B" = 5))
p2 <- plot(fit,
fills = list(fill = c("blue", "green")),
labels = F)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.