2012-01-03 15 views
46

Aşağıdaki türde bir sayım verisi var.Venn diyagramı yarı saydamlıklı orantılı ve renkli gölgelendirme

A 450 
B 1800 
A and B both 230 

aşağıdaki Venn şeması gibi renkli (kavşaklarda muhtemelen yarı şeffaflık) geliştirmek istiyoruz.

enter image description here

Not: Bu rakam PowerPoint'te çizilmiş bir örnek eldir ve bu ölçek değildir.

+0

aynı r paketi için parlak bir uygulama deneyebilirsiniz; findFn ("venn") 've bunu ne kadar ileriye götürdüğünü görüyor musunuz? –

+0

Veya * venneuler * paketini kullanın. –

cevap

45

Venn diagram from list of clusters and co-occurring factors. kolay çözüm kullanımı pakete venneuler için

:

require(venneuler) 
v <- venneuler(c(A=450, B=1800, "A&B"=230)) 
plot(v) 

enter image description here

daha gelişmiş ve özelleştirilmiş çözümler için paket VennDiagram kontrol edin.

+0

Bağımlı çizgilerin siyah renkte gösterilmesi mümkün mü? Çözüm için Thnaks .. – jon

+0

@John: iyi form, VennDiagram ve venneuler için yardım dosyalarını dikkatlice okuyun ve sadece biçimlendirme ya da diğer seçenekler hakkında bilgi isteyin. –

+0

@John “venneuler” bir “kenarlık” argümanına sahip değilken, “venneuler” nesnesinin değerine dayalı daireler çizebilirsin (bir merkezin sınırları ve sınırları olacak). Ben de bu uygulamada uygulamak için o kadar da zor olmayacağından şüpheleniyorum. –

39

Geek On Acid'in ikinci cevabına göre ikinci öneri (bir kez daha teşekkürler) Hat sorununu da çözebilirdim. Bu diğer googlers için uygun olup olmadığını gönderiyorum! indirebilir ve çalıştırabilirsiniz sezgisel ve esnek orantılı çizici vardır

require(VennDiagram) 
    venn.diagram(list(B = 1:1800, A = 1571:2020),fill = c("red", "green"), 
    alpha = c(0.5, 0.5), cex = 2,cat.fontface = 4,lty =2, fontfamily =3, 
    filename = "trial2.emf"); 

enter image description here

+0

Merhaba, ben vennDiagram kullanıyorum (alt, cex = .., lwd = 2, circle.col = ...) 've bahsettiğiniz gibi 'doldurun' dediğimde, şunu sorar: 1:' "doldurma" grafiksel bir parametre değildir 'Bu bir vennDiagram sürümü meselesi midir? Bu durumda doğru 'doldurun' musunuz? Çok teşekkürler – PGreen

+0

@PGreen Ben sadece vennDiagram son sürümü ile R 2.15.2 çalıştı benim için çalışır .... – jon

+3

@ PGreen Ben sorun vennDiagram limma paketinden kullanıyorsanız, venn kullanırken venn kullanmaktır. vennDiagram paketinden diyagram. vennDiagram bir dolgu argümanına sahip değil, bu yüzden hatayı alıyorsunuz. – sage88

11

. Bunun, Venn Diagram'ı çizmek isteyen diğer insanlar için faydalı olacağını düşündüm. Bir gplots paketinden Venn() işlevini kullanabilirsiniz:

## modified slightly from the example given in the documentation 
## Example using a list of item names belonging to the 
## specified group. 
## 
require(gplots) 
## construct some fake gene names.. 
oneName <- function() paste(sample(LETTERS,5,replace=TRUE),collapse="") 
geneNames <- replicate(1000, oneName()) 

## 
GroupA <- sample(geneNames, 400, replace=FALSE) 
GroupB <- sample(geneNames, 750, replace=FALSE) 
GroupC <- sample(geneNames, 250, replace=FALSE) 
GroupD <- sample(geneNames, 300, replace=FALSE) 

venn(list(GrpA=GroupA,GrpB=GroupB,GrpC=GroupC,GrpD=GroupD)) 

enter image description here http://www.inside-r.org/packages/cran/gplots/docs/venn

Sonrasında ben sadece çizer kullanarak renk ve şeffaflık ekleyin. enter image description here

+1

Merhaba! Illustrator kullanarak ne demek istediğini açıklığa kavuşturuyor musunuz? Adobe Illustrator'ı mı kastediyorsunuz, yoksa yukarıdaki diyagramı sadece R kullanarak elde etmenin bir yolu var mı? –

+1

Üzgünüm, benim hatam! Adobe Illustrator – ktyagi

3

OP'nin R'deki bir çözümü sorduğunu biliyorum, ancak BioVenn adlı web tabanlı bir çözüme işaret etmek istiyorum.

enter image description here

Bu diyagramda I (Photoshop ile) el ile değişmiştir: bu gibi - bu elemanların 3 listelerine alır ve her bir yüzey elemanlarının sayısı ile orantılı olduğu şekilde bir Venn diyagramı çizer BioVenn tarafından seçilen yerleri sevmediğim gibi sayıların yerleştirilmesi. Ama sayıların olmamasını tercih edebilirsiniz. Teorik olarak, BioVenn ile kullanılan listeler, gen kimliklerinden oluşacaktır, ancak pratikte, önemli değildir - listeler sadece dizgileri içermelidir.

+2

kullanarak demek istiyorum. "Bu şemada, BioVenn tarafından seçilen yerlerden hoşlanmadığı gibi, rakamların yerleştirilmesiyle (PhotoShop aracılığıyla) manuel olarak değiştirdim. Ama numaralara sahip olmamayı seçebilirsiniz." Aslında, BioVenn'de sayıları istediğiniz yere sürükleyip bırakabilirsiniz. No PhotoShop gerekli :-) –

19

Kısa bir süre önce, istediğinizi yapan yeni bir R paketi, eulerr yayınladım. Venneuler'e oldukça benzer ama tutarsızlıkları yok.

library(eulerr) 
fit <- euler(c(A = 450, B = 1800, "A&B" = 230)) 
plot(fit) 

eulerplot

Ya da değil kütüphaneye ("sos") `ile başlamak Neden eulerr.co

shiny-euler

+0

Animasyonlu parlak uygulama benim için anlaşma imzaladı – Megatron

+1

Mükemmel paket. Küçük kusur imho, ilk set ve arka plan için beyazı kullanan ve dolayısıyla kontrast içermeyen varsayılan renk şemasıdır. Ayrıca sağlanan kod pasajı, son R/paket sürümü ile aynı sonucu vermiyor. –

+0

Teşekkürler. Kod parçacığını ve oluşturduğu şekli güncelledim. Renk düzeni ile ilgili olarak size katılmayacağım.Arka plan ile karşıtlık, çoğu diğer renkler ve özellikle de daire üzerindeki etiket ile çok iyi bir şekilde temel kaygı ve beyaz kontrast değildir. –

İlgili konular