Ich möchte zwei ggplots aus zwei verschiedenen data.frames zu einem Plot kombinieren. Unten finden Sie den Code. Ich möchte Parzelle 1 & 2 oder Parzelle 3 & 4 kombinieren.
df1 <- data.frame(p=c(10,8,7,3,2,6,7,8),
v=c(100,300,150,400,450,250,150,400))
df2 <- data.frame(p=c(10,8,6,4), v=c(150,250,350,400))
plot1 <- qplot(df1$v, df1$p)
plot2 <- qplot(df2$v, df2$p, geom="step")
plot3 <- ggplot(df1, aes(v, p)) + geom_point()
plot4 <- ggplot(df2, aes(v, p)) + geom_step()
Das muss sehr einfach sein, aber irgendwie kann ich es nicht zum Laufen bringen. Vielen Dank für Ihre Zeit.
ggplot()
Syntax können Sie die Daten angeben, die für jede einzelne Ebene verwendet werden sollen, z. B.geom_step(data=df2)
Antworten:
Wie Baptiste sagte, müssen Sie das Datenargument auf Geomebene angeben. Entweder
#df1 is the default dataset for all geoms (plot1 <- ggplot(df1, aes(v, p)) + geom_point() + geom_step(data = df2) )
oder
#No default; data explicitly specified for each geom (plot2 <- ggplot(NULL, aes(v, p)) + geom_point(data = df1) + geom_step(data = df2) )
quelle
(my_variable <- 1:5)
ist eine sauberere Version vonmy_variable <- 1:5; my_variable
.Die einzige funktionierende Lösung für mich war, das Datenobjekt in der geom_line anstelle des Basisobjekts ggplot zu definieren.
So was:
ggplot() + geom_line(data=Data1, aes(x=A, y=B), color='green') + geom_line(data=Data2, aes(x=C, y=D), color='red')
anstatt
ggplot(data=Data1, aes(x=A, y=B), color='green') + geom_line() + geom_line(data=Data2, aes(x=C, y=D), color='red')
Mehr Infos hier
quelle
Mit diesem Trick können Sie nur qplot verwenden. Verwenden Sie die innere Variable
$mapping
. Sie können Ihren Plots sogar color = hinzufügen, damit dies auch in die Zuordnung eingefügt wird. Anschließend werden Ihre Plots automatisch mit Legende und Farben kombiniert.cpu_metric2 <- qplot(y=Y2,x=X1) cpu_metric1 <- qplot(y=Y1, x=X1, xlab="Time", ylab="%") combined_cpu_plot <- cpu_metric1 + geom_line() + geom_point(mapping=cpu_metric2$mapping)+ geom_line(mapping=cpu_metric2$mapping)
quelle
qplot(y=..., x=..., colour=...)
, dann Farbe innen hinzufügengeom_line(mapping..., colour=...)