ggplot

2016-04-14 22 views
3

içinde birden çok yönü ile bir gerileme 20 faset içeren bir şekil üzerinden doğrusal bir gerileme (aslında 9'u) sığdırmaya çalışıyorum. Her seferinde regresyona uyuyorum (geom_smooth kullanarak method = lm kullanarak), her faset üzerinden bir tane olmak üzere 20 satıra uyuyor, ancak her ReefSpecies kombinasyonunun tek bir satırını 20 yüzeye yaymak istiyorum. , Sen (Yapabileceğiniz hangi place an identical smooth on each facet of a ggplot istemiyorumggplot

Biomass <- c(20, 10, 5, 4, 5, 7, 8, 22, 13, 13, 15, 18, 2, 5, 7, 10) 
Season <- c("Winter", "Spring", "Summer", "Fall") 
Year <- c("1", "2", "3", "4") 
ReefSpecies <- c("Admiral Ma", "Jaap Mf", "Grecian Ma", "Alligator Mf", "Jaap Mf", "Grecian Ma", "Alligator Mf", "Admiral Ma", "Grecian Ma", "Alligator Mf", "Admiral Ma", "Jaap Mf", "Alligator Mf", "Admiral Ma", "Jaap Mf","Grecian Ma") 
Seasonal <- data.frame(Biomass, Season, Year, ReefSpecies) 

testp <- ggplot(data = Seasonal, aes(x = Season, y = Biomass, group =  ReefSpecies, fill = ReefSpecies, colour = ReefSpecies)) 
testp <- testp + geom_point(stat = "identity", position="identity", inherit.aes = TRUE) 
testp <- testp + facet_grid(. ~ Year, scales="fixed") 
testp <- testp + theme(axis.text.x = element_text(angle = 90)) 
testp <- testp + theme(panel.margin.x = unit(0, "lines")) 
testp <- testp + theme(legend.position = "top") 
testp 
+0

soru tekrarlanabilir olun: (senin örneğin veri yılda birden fazla gözlem olmadığı için ince ayarların verilerle,)

bir örnek. – Andrie

+0

Bu bağlamda, biraz veri sağlayın, böylece sorununuzu yeniden üretebiliriz. – lmo

+0

ggplotGrob öğeleri ve tüm tema öğeleri sorunuzla alakalı değildir ve sadece yazıyı gözler üzerinde zorlaştırır. Geom_point() 'içindeki öğeler de gereksizdir. Regresyona (stat_smooth ya da başka bir şey?) Uymak için kullandığınız çizgiyi, o grubun içindeki "grup" estetiğini özel olarak ayarladığınızı öneririm. İlk 'ggplot()' çağrısında, aksi belirtilmedikçe, diğer tüm katmanların miras alması için gruplandırma ve renklendirme estetiği ayarlıyorsunuz. + geom_smooth (method = "lm", aes (group = 1)) gibi bir şey ekleyebilirsiniz '' – Matt74

cevap

1

açıklamalara dayanarak:

İşte Similar Figure

Bugüne kadar ne var: Burada

benim rakamdır setting the faceting variable to NULL in the smooth tarafından

Ne yapıyorsunuz do, tüm yönleriyle tek bir gerileme elde etmektir. Bazıları like that shown here'u hacklemeden bunun mümkün olmadığını düşünüyorum. Bunu deneyebilirsin.

Fakat bunun yerine, neden bunu yapmak istediğinizi ve ne anlama geldiğini düşünmek için geri adım atmanızı öneririm. Belki de fasetlerin doğru seçim olmadığı anlamına mı geliyor? Bu durumda, yıl boyunca mevsimler için hesaplar ve (gerçi olmadan) o regresse bir Time değişkenini tanımlamayı düşünebilirsiniz.

Year <- sort(rep(Year, 4)) 
Seasonal <- data.frame(Biomass, Season, Year, ReefSpecies) 
Seasonal$Time <- interaction(Season, Year) 

ggplot(Seasonal, aes(Time, Biomass, color=ReefSpecies)) + 
    geom_point() + 
    geom_smooth(aes(group=ReefSpecies), method="lm") 

enter image description here

+0

Kötü ifadeler için özür dilerim. Şeklinde 4 regresyon çizgisi istiyorum, her ReefSpecies kombinasyonu için 4 faseti geçecek – Danib90

+0

@ aosmith İlk bağlantı istediğim gibi görünüyor, ama eğer söyleyeceksem fibbing yapardım ne olduğunu biliyordum. kodu. – Danib90

+0

Tamam, ilk yorumdan @aosmith yorum yazabilir misiniz? Yani, http://stackoverflow.com/questions/31690007/ggplot-drawing-line-between-points-across-facets/31691313#31691313 – jaimedash