2013-04-17 7 views
5

Bir üçüncü değişkene ve yoğunluk2d konturlarına boyut eşlemesiyle ggplot2'de bir dağılım grafiği çizmeye çalışıyorum. Efsane yoğunluğu2d konturlarının dahil edilmesiyle karıştırılıyor gibi görünüyor.Boyut eşleme ve yoğunluk2d'yi kullanarak olağandışı bir efsane

Örneğin, aşağıdaki kod çalışır:

library('ggplot2') 
set.seed(1) 
x=rnorm(100); y=rnorm(100,sd=10); z=seq(1,10,length.out=100) 
dd=data.frame(x=x,y=y,z=z) 
ggplot(dd,aes(x,y,size=z))+geom_point() 

plot looks normal

Fakat şimdi, stat_density2d() bir çağrı eklerken efsane alışılmadık davranır not edin. Özellikle, arsa efsane yerine siyah çevrelerin mavi blokları gösterir: size= gibi

ggplot(dd,aes(x,y,size=z))+geom_point()+stat_density2d() 

plot legend shows blue blocks instead of black circles

cevap

6

Eğer stat_density2d() için ve ggplot() çağrı ayarlanır bu durumda ayarlayabilirsiniz estetik biridir efsane hem satırlar hem de noktalar için yapılır (noktalar, geom_point()'un stat_density2d()'dan önce çağrıldığı gibi efsanede satırların altına gizlenir). Lejandtan mavi çizgileri kaldırmak için, stat_density2d() öğesinin içine manuel olarak size=0.5 (veya başka bir değer) ayarlayabilirsiniz ve sonra lejant doğru olacaktır. `Ggplot (dd, aes: Bu yardımcı olmakla düzeni değişimci hem (temelde dolu daireler dikdörtgenler gizleyerek) efsaneleri gösteriyorsa

ggplot(dd,aes(x,y,size=z))+geom_point()+stat_density2d(size=0.5) 

enter image description here

+2

(+1) emin değilim (x, y, size = z)) + stat_density2d() + geom_point() ' – Arun

+1

@Arun evet, haklısınız - her iki efsane de çizilmiştir (sadece gizli). Çözüm, efsanedeki çizgi genişliklerinden nasıl kurtulacağını gösterir (bu durumda anlamlı olmadıklarından) –

+0

Harika, teşekkürler! – js86

İlgili konular