2016-03-23 16 views
0

Ich bin wirklich neu zu ggplot2 aber versuchen zu lernen. Ich habe meine Daten in Langform, und es sieht wie folgt aus:R ggplot2 gruppieren bar plots

Year School Type  Stat    Value 
2011 Middle School Tobacco Use   7.5 
2011 Middle School Cigarettes   4.3 
2011 Middle School Smokeless Tobacco 2.2 
2011 Middle School Hookahs    1 
2011 Middle School E-cigarettes  0.6 
2011 High School  Tobacco Use   24.3 
2011 High School  Cigarettes   15.8 
2011 High School  Smokeless Tobacco 7.3 
2011 High School  Hookahs    4.1 
2011 High School  E-cigarettes  1.5 

Der vollständige Satz ist hier: http://pastebin.com/VUvWhC4x

Was will ich tun ist, zwei Graphen zu machen, eine für Mittelschule und eine für Schule . Ich kann das leicht in diese Gruppen unterteilen, also versuchen wir es für die Mittelschule. Ich benutze hier ein deplyrisches Verb.

middle = as.data.frame(filter(data,School.Type=="Middle School")) 

Was ich die Grafik aussehen soll ist jeder stat entlang der x-Achse gehen und dann werden die Jahre getrennt für das laufende Jahr in Folge grafisch dargestellt werden. Dann gehe zum nächsten Stat und zur selben Sache. Die Jahre sind 2011-2014. Es ist die Simulation sehr viel diese Grafik:

enter image description here

Das Beste, was ich tun kann, ist dieser Code:

ggplot(middle, aes(factor(Stat), Value, fill = factor(Year)) + 
+geom_bar(stat="identity", position = "dodge") + 
+scale_fill_brewer(palette = "Set1") 

die enter image description here

produziert würde Ich mag Gruppe diese von stat und dann von Jahr 2011-2014 für jede Statistik. Irgendwelche Ideen?

Antwort

3

Sie sind in der Nähe - Sie wollen Stat auf der x-Achse und Value zu y zugeordnet werden. Dann füllen Sie Year und legen fest, dass die Bars ausgewichen werden sollen (d. H. Nebeneinander).

Dies ist ziemlich nah an der Handlung, die Sie als die gewünschte Ausgabe gebucht haben.

library(ggplot2) 

ggplot(middle, aes(x=Stat, y=Value, fill=factor(Year))) + 
    geom_bar(stat='identity', position ='dodge', color='black') + 
    scale_fill_brewer(palette=1) + 
    theme_classic() 

enter image description here

+0

Perfect! Ich danke dir sehr!! :) – user137698