2016-03-25 9 views
3

I haben folgende Datensatz:ggplot: Panel von Balkendiagrammen

Year, Height, Width, Weight 
1990, 5, 45, 190 
2000, 7, 77, 210 
2010, 2, 20, 150 

ich möchte Höhe einer einzelnen Spalte der Balkendiagramme mit einem Grundstück plotten, Breite und Gewicht . In jedem Balkendiagramm würden die Werte für jedes Jahr grafisch dargestellt. Also, sagen wir, das obere Balkendiagramm in meiner Spalte der Balkendiagramme ist Höhe Es würde die Werte 5, 7 und 2 mit den Jahren 1990, 2000 und 2010 auf der X-Achse zeigen.

Ich habe herausgefunden, wie mit jedem Balkendiagramm ein Jahr eine einzelne Spalte von Bar Plots haben darstellt:

data <- read.csv("../data/MyData.csv") 
data.m <- melt(data, id.vars = "Year") 

p <- ggplot(data.m, aes(variable, value)) + geom_bar(stat="identity") + facet_wrap(~ Year, ncol=1) 
print(p) 

In diesem Fall meine Variablen - Höhe, Gewicht und Breite - sind auf der x-Achse jedes Balkendiagramms. Trotzdem kann ich einfach nicht verstehen, wie man dies umsetzt, so dass Jahr auf der x-Achse ist. Irgendwelche Vorschläge?

+1

Hat du Mapping 'Year' versucht, 'X' Argument' ggplot' in 'aes' dann Facettieren von' variable' statt ? – cderv

+0

Ah, das ist es. Danke @Titolondon! Kannst du das als Antwort posten, damit ich es richtig markieren kann? – Lyngbakr

Antwort

1

Ordnen Sie dazu den richtigen Wert der gewünschten Ästhetik zu. Es ist einfacher, eine nicht-facettierte Handlung zu tun, wenn alles zu überprüfen ok vor Facettierung

p <- ggplot(data.m, aes(x = Year, y = value)) + 
    geom_bar(stat="identity") + 
    facet_wrap(~ variable, ncol=1) 
Verwandte Themen