[英]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.