2010-04-13 13 views
15
df <- data.frame(age=c(10,10,20,20,25,25,25),veg=c(0,1,0,1,1,0,1)) 
g=ggplot(data=df,aes(x=age,y=veg)) 
g=g+stat_summary(fun.y=mean,geom="point") 

Puan beklediğim ve aşağıdaki komutla eksen limitlerini değiştirdikten sonra korumak istediğini her yaşta sebze ortalama yansıtmaktadır. ": Kayıp değerleri (stat_summary) ihtiva eden kaldırıldı 4 satır uyarı mesajı"Ylimin değiştirilmesi (eksen sınırları), aralık dışında kalan verileri azaltır. Bu nasıl önlenebilir?

yukarıdaki komutla eksen sınırları değiştirme

g=g+ylim(0.2,1) 

ne yazık ki sebze ==

elde verilerden bırakılan 0 alt-kümesini neden olur

şimdi veri arsa (stat_summary ortalama) sebze == 0 noktaları çıkarır çünkü bu kötü. Bu nasıl önlenebilir? Çizelgenin boş kısmını 0'dan .2'ye göstermekten kaçınmak istiyorum, ancak ilgili verileri stat_summary hesaplamasından düşürmüyorum.

cevap

25

bunu yapabilirsiniz coord sistemini belirterek:

df <- data.frame(age=c(10,10,20,20,25,25,25),veg=c(0,1,0,1,1,0,1)) 
g=ggplot(data=df,aes(x=age,y=veg)) 
g=g+stat_summary(fun.y=mean,geom="point") 
g+coord_cartesian(ylim=c(0.2,1)) #do not use +ylim() here 
+0

Bu gets iyidir iyidir, ve dışarı aralık değerlerini bırakarak önler aynı ölçekte, sunulan her şey, ama şimdi y ekseni etiketleri, yalnızca istenmeyen değerleri bulduğum değerleri içeren aralığı gösterir. Ekseni nasıl yapılacağından emin olun, arsa tam aralığını yansıtır. –

+3

Birisi değerleri düşürmemek için neden koordinat sistemini belirtmeniz gerektiğini biliyor mu? Bunu varsayılan ayar olarak neden yapmıyoruz? Buradaki örnek muhtemelen en iyisi değil, ancak birkaç değer için büyük hata çubuklarınız varsa ve y eksenini bir genel modele sınırlamak istiyorsanız, bu çözüm mükemmel bir şekilde çalışır. Ylim() veya scale_y_continuous() yöntemini kullanırsam, aralıktaki hata çubukları hiç çizilmez. – Mikko

İlgili konular