2016-08-08 14 views
8

Örnek veri çerçevesi:altta yatan faktör seviyelerini yeniden sıralama olmadan, facet_wrap sadece yönleriyle yeniden sıralamak mümkün mü?

df <- data.frame(x=rep(1:10,4),y=rnorm(40),Case=rep(c("B","L","BC","R"),each=10)) 

Ben kendi faset her zaman serilerini belirleyebiliriz: Artık

ggplot(df,aes(x=x,y=y,color=Case)) + geom_line()+facet_wrap(~Case,nr=2,nc=2) 

enter image description here , ben faset sırasını değiştirmek istediğinizi varsayalım (üst-başlayarak sola ve satırlar boyunca alt sağa doğru) "L", "B", "R", "BC". SO burada olağan öneri this yapmaktır. Ben faktör Case seviyelerini yeniden düzenlemek Ancak, aynı zamanda eğrilerin renkleri değişecektir. Eğri renklerinin sırasını değiştirmeden fasetleri yeniden sıralamak mümkün mü? Garip bir soru gibi geldiğini biliyorum. Sorun raporum devam eden bir çalışmadır olmasıdır, ve zaten & yönetimini coworkers gösterdi raporda, bir eski sürümünde, (hayır facet_wrap) ile birden araziler az ya da çok bu gibi idi:

ggplot(df,aes(x=x,y=y,color=Case)) + geom_line() 
başka bir deyişle

enter image description here

, artık insanlar kırmızı renge "B" ilişkilendirmek için kullanılır. Yeniden sipariş verirsek, "L" kırmızı, "B" yeşil, vb. Şikayetleri zaten duyuyorum ... bunun bir yolu var mı?

cevap

4

Sadece istediğiniz düzen ile yeni bir sütuna veri kopyalamak. Renklendirme için yeni sütunu, renk için eski sütunu kullanın.

df$facet = factor(df$Case, levels = c("L", "B", "R", "BC")) 

ggplot(df, aes(x = x, y = y, color = Case)) + 
    geom_line() + 
    facet_wrap(~facet, nr = 2) 
+0

Parlak! benim gerçek durumda ben 'color' aestethic için değil, aynı zamanda' tek linetype' için sadece Davasını eşleştirilmiş. Böylece diğer çözümler, mr '' aynı zamanda 'linetype' için ölçeği manuel olarak ayarlamaya zorlayacaktır. Çözümün daha basit. Teşekkürler! – DeltaIV

İlgili konular