2013-01-10 16 views
37

Dane:Ustalanie kolejności ścianką ggplot

type size amount 
T 50%  48.4  
F 50%  48.1  
P 50%  46.8  
T 100% 25.9  
F 100% 26.0  
P 100% 24.9  
T 150% 21.1  
F 150% 21.4  
P 150% 20.1  
T 200% 20.8  
F 200% 21.5  
P 200% 16.5 

trzeba sporządzić bargraf powyższych danych przy użyciu ggplot (oś x -> „Typ”, oś Y -> „ilość” grupa według "rozmiaru"). Kiedy użyłem następującego kodu, nie otrzymuję zmiennej "type", a także "size" w kolejności pokazanej w danych. Proszę zobaczyć figurę. Użyłem do tego następującego kodu.

ggplot(temp, aes(type, amount , fill=type, group=type, shape=type, facets=size)) + geom_bar(width=0.5, position = position_dodge(width=0.6)) + facet_grid(.~size) + theme_bw() + scale_fill_manual(values = c("darkblue","steelblue1","steelblue4"), labels = c("T", "F", "P")) 

enter image description here.

W celu poprawienia problemu z zamówieniem użyłem metody współczynnika dla zmiennej "type", używając następującej metody. Proszę zobaczyć również liczbę.

temp$new = factor(temp$type, levels=c("T","F","P"), labels=c("T","F","P")) 

enter image description here

Jednak teraz nie wiem jak to naprawić rozkaz zmiennej „wielkości”. Powinno wynosić 50%, 100%. 150% i 200%.

Odpowiedz

57

Bądź rozmiar czynnikiem w dataframe przez:

temp$size_f = factor(temp$size, levels=c('50%','100%','150%','200%')) 

Następnie zmień facet_grid(.~size) do facet_grid(.~size_f)

Then działki: enter image description here

Wykresy są teraz w prawidłowej kolejności.

+1

Dzięki. Jestem naprawdę głupi. :-) – samarasa

+0

miło mi pomóc :) – Harpal

+0

@Harpal Masz komentarz do swojej odpowiedzi w postaci innej odpowiedzi. Spójrz na –