[英]Accurate Venn diagrams using eulerr
我正在嘗試使用 eulerr 包來創建維恩圖。 我有 2 個列表,我想用它們來創建維恩圖。 列表中的第一個是第一個的子集。 奇怪的是,歐拉似乎認為列表中存在一個值
b
這是該子集獨有的。 我似乎無法弄清楚它認為哪些值是獨一無二的。
> length(a)
[1] 3278
> length(b)
[1] 1318
當我檢查子集之間的重疊時,我得到了預期的結果:
> length(which(a %in% b))
[1] 1318
> length(which((b %in% a)))
[1] 1318
> length(which(!(b %in% a)))
[1] 0
> length(which(!(a %in% b)))
[1] 1960
但是當我使用 eulerr 繪制維恩圖時,我得到:
library(eulerr)
fit <- euler(list("A" = a, "B" = b))
plot(fit, counts = TRUE)
值得注意的是,歐拉認為 A 獨有的值的數量比我使用的要長 1
length(which(!(a %in b)))
任何幫助理解這種行為將不勝感激!
我發現了導致這種行為的原因,但我無法解釋原因。 這是因為a
和b
中都有重復的值,而且是相同的值。
> a[duplicated(a)]
[1] "Crybg3"
> b[duplicated(b)]
[1] "Crybg3"
如果我從兩個向量中刪除這個值,它就可以工作。
a1 <- a[!duplicated(a)]
b1 <- b[!duplicated(b)]
fit <- euler(list("A" = a1, "B" = b1))
plot(fit, counts = TRUE)
> fit
original fitted residuals region_error
A 1960 1960 0 0
B 0 0 0 0
A&B 1317 1317 0 0
diag_error: 0
stress: 0
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.