2016-07-12 13 views
0

Ich habe einen Datenrahmen, die in etwa wie folgt aussieht:Wie data.frame mit mehreren Spalten in ggplot2 plotten?

aa <- c(1:7) 
bb <- c(11:15) 
df1 <- expand.grid(aa, bb) 
val1 <- rnorm(nrow(df1)) 
val2 <- runif(nrow(df1)) 

df <- data.frame(df1, val1, val2) 
names(df) <- c("aa", "bb", "val1", "val2") 

Was ich tun möchte: Für eine feste aa (sagen wir, 1), gibt es eine Zeitreihe von val1 und val2 für alle Werte von bb . Nun möchte ich diese Zeitreihen (für aa = 1 sind dies 5 für jede val1 und val2) plotten. (also insgesamt 7 * 5 * 2 Zeitreihen)

Wie kann ich das mit ggplot2 machen?

Ich habe versucht, die folgenden:

require(ggplot2) 
require(reshape2) 

df_pl <- melt(df, id.vars = c("aa", "bb"), variable.name = 'val') 

ggplot(df_pl, aes(aa, value)) + geom_point(aes(colour = val)) 
ggplot(df_pl, aes(bb, value)) + geom_point(aes(colour = val)) 

Aber diese produziert nur Plots von val1 und val2 als Funktionen von aa und bb, für jeden Wert von bb nicht eine val1/val2 Serie. Ich verwende wahrscheinlich die Schmelze Funktion falsch

+0

So etwas wie das? 'ggplot (df_pl, aes (x = (Wechselwirkung (bb, aa)), y = Wert, Farbe = val)) + geom_point()' – Jimbou

+0

@Jimbou Hmm, das zeichnet alle 'val1' und' val2' für alle Kombinationen von aa und bb. Was ich tun möchte ist, sagen wir aa = 1, zeichnen Sie eine Zeitreihe von 'val1' und' val2' als Funktionen von bb, dann machen Sie das gleiche für aa = 2 und so weiter. Also sollte es 7 * 5 Zeitreihen von val1 und 7 * 5 Zeitreihen von val2 gezeichnet – user3825755

Antwort

2

ich nicht sicher bin, ob ich Sie richtig verstanden, und das ist, was Sie erreichen wollen, aber vielleicht versuchen:

ggplot(df_pl, aes(aa, value)) + geom_point(aes(colour = val)) + facet_wrap(~bb) 
ggplot(df_pl, aes(bb, value)) + geom_point(aes(colour = val)) + facet_wrap(~aa) 
+0

Danke, das geht in die richtige Richtung, es ist etwas schwer zu erklären, was ich tun möchte. Das bedeutet, dass mehrere Panels geplottet werden. Ich würde es vorziehen, alles in einem Panel zu haben, aber verschiedene Farben für die verschiedenen bb-Werte (im ersten Fall) oder aa-Werte (im zweiten Fall) verwenden. – user3825755

+1

So 'ggplot (df_pl , aes (bb, Wert)) + geom_point (aes (Farbe = Faktor (aa))) '? – Axeman