Mit ggplot2 wie kann ich die plot-Punkte, die mit einem aes() nach dem Plotten Linien?
Ich bin mit ggplot2, um zu zeigen, Linien und Punkte auf einem Grundstück. Was ich versuche zu tun ist, um die Linien alle die gleiche Farbe, und dann zeigen die farbigen Punkte von einem Attribut. Mein code ist wie folgt:
# Data frame
dfDemo <- structure(list(Y = c(0.906231077471568, 0.569073561538186,
0.0783433165521566, 0.724580209473378, 0.359136092118470, 0.871301974471722,
0.400628333618918, 1.41778205350433, 0.932081770977729, 0.198188442350644
), X = c(0.208755495088456, 0.147750173706688, 0.0205864576474412,
0.162635017485883, 0.118877260137735, 0.186538613831806, 0.137831912094464,
0.293293029083812, 0.219247919537514, 0.0323148791663826), Z = c(11112951L,
11713300L, 14331476L, 11539301L, 12233602L, 15764099L, 10191778L,
12070774L, 11836422L, 15148685L)), .Names = c("Y", "X", "Z"
), row.names = c(NA, 10L), class = "data.frame")
# Variables
X = array(0.1,100)
Y = seq(length=100, from=0, by=0.01)
# make data frame
dfAll <- data.frame()
# make data frames using loop
for (x in c(1:10)){
# spacemate calc
Floors = array(x,100)
# include label
Label = paste(' ', toString(x), sep="")
df1 <- data.frame(X = X * x, Y = Y, Label)
# merge df1 to cumulative df, dfAll
dfAll <- rbind(dfAll, df1)
}
# plot
pl <- ggplot(dfAll, aes(x = X, y = Y, group = Label, colour = 'Measures')) + geom_line()
# add points to plot
pl + geom_point(data=dfDemo, aes(x = X, y = Y)) + opts(legend.position = "none")
Diese fast funktioniert, aber ich bin nicht in der Lage, um die Farbe der Punkte von Z
wenn ich dies tun. Ich kann Plotten die Punkte getrennt, gefärbt durch Z
mit dem folgenden code:
ggplot(dfDemo, aes(x = X, y = Y, colour = Z)) + geom_point()
Allerdings, wenn ich die ähnlichen code nach dem zeichnen der Linien:
pl + geom_point(data=dfDemo, aes(x = X, y = Y, colour = Z)) + opts(legend.position = "none")
Bekomme ich die folgende Fehlermeldung:
Error: Continuous variable () supplied to discrete scale_hue.
Ich verstehe nicht, wie Sie die Punkte auf der Karte, so dass ich Farbe Sie, indem Sie einen Wert ein. Ich freue mich über jeden Vorschlag, wie dieses Problem zu lösen.
InformationsquelleAutor djq | 2011-06-28
Du musst angemeldet sein, um einen Kommentar abzugeben.
Das Problem ist, dass Sie die Kollision der zwei Farb-Skalen, eine aus dem ggplot Ruf und die andere von geom_point. Wenn Sie möchten, dass die Linien einer Farbe und die Punkte in verschiedenen Farben, dann müssen Sie löschen Sie die Farbe festlegen von ggplot Anruf und legte es in die geom_line außerhalb der aes-Aufruf, so dass es nicht abgebildet. Verwenden
I()
zu definieren die Farbe, sonst wird es denke ist nur eine variable.HTH
I
im qplot.InformationsquelleAutor Luciano Selzer