我有以下矩陣,我想用R(首選)或Excel繪製重疊圖形。使用R或Excel重疊圖形
a b c
a 1 0.5 0.7
b 0.5 1 0.4
c 0.7 0.4 1
例如,上表中表明,a
和b
有50%的重疊,而a
和c
有70%。
我有以下矩陣,我想用R(首選)或Excel繪製重疊圖形。使用R或Excel重疊圖形
a b c
a 1 0.5 0.7
b 0.5 1 0.4
c 0.7 0.4 1
例如,上表中表明,a
和b
有50%的重疊,而a
和c
有70%。
如果你想重疊,那麼你錯過了一個數字 - 重疊所有三個:a
,b
,c
。
As Aniko在評論中寫下您可以使用維恩圖,例如Vennerable from R-forge。
安裝需要一些軟件包從Bioconductor的:
source("http://bioconductor.org/biocLite.R")
biocLite(c("graph", "RBGL", "gtools", "xtable"))
install.packages("Vennerable", repos="http://R-Forge.R-project.org")
您桅杆適當地準備你的數據:
require(Vennerable)
x <- Venn(
SetNames = c("a", "b", "c"),
Weight = c(`100`=1, `010`=1, `001`=1,
`110`=0.5, `101`=0.7, `011`=0.4,
`111`=.5) # I made this up cause your question miss it
)
,瞧:
plot(x, doWeights=TRUE)
一些額外的解釋。
Vennerable包的數據結構需要提供集合名稱("a"
,"b"
,"c"
)以及每個相交的頻率/比例。此0/1名稱標識子集:1
表示「在集合中」,0
表示「未集合」。因此,如:
100
意味着a
,而不是在b
,而不是在c
,011
意味着不a
,在b
,在c
所以111
意味着在所有三組,這是矩陣中缺失的,不能在那裏添加。對於您的樣本數據,當一個& b有0.7重疊和b & c有0.4意味着在同一時間至少有三個集合(或者我錯過了對這個數字的解釋)。 (注:我想我高估了這個0.5,原因應該是低於0.4)
你可以創建矩陣前準備好您的數據,以維恩圖,如:
X <- list(
a = c("One", "Two", "Three"),
b = c("One", "Three", "Four", "Five", "Seven"),
c = c("Three", "Five", "Eight", "Nine", "Ten")
)
x <- Venn(X)
x
# A Venn object on 3 sets named
# a,b,c
# 000 100 010 110 001 101 011 111
# 0 1 2 1 3 0 1 1
plot(x, doWeights=TRUE)
感謝您的回答。你能不能多解釋一下,你是如何在你的函數中映射矩陣的?爲什麼還要加0.5?我可以在哪裏把這個數字放在我的矩陣中?什麼是101,110或100的值?另外,我的值是0.003,0.0047等。它會產生問題嗎? – user751637 2011-06-07 01:50:57
@ user751637我添加了一些解釋。檢查它是回答你的疑惑。 – Marek 2011-06-07 12:12:33
你lloking的東西像維恩圖? – Aniko 2011-06-05 18:06:19
@Aniko,是維恩圖使用上述數據 – user751637 2011-06-05 18:18:42
http://stackoverflow.com/questions/1428946/venn-diagrams-with-r – 2011-06-05 18:37:56