繁体   English   中英

在 R 中使用 ggplot2 叠加两个图

[英]Overlaying two plots using ggplot2 in R

有两个数据框 - df1df2 ,我需要从中使用 ggplot2 创建线图并显示在同一个图形上。

df1

 x   y 
2   30
4   25
6   20
8   15

df2

 x   y 
2   12
4   16
6   20
8   24

用于绘制第一个 df,

p1 <- ggplot( df1, aes(x = df1[,1] , y = log(df1[,2]) ) )
p1 <- p1 + geom_line(aes(y = log(df1[,2])))
p1

我们如何在数据框df2同一图形上获得相同的绘图叠加

如果您重新定义data ,那将改变该 geom 层的来源。 ggplot将始终查看美学映射的初始化调用并尝试从那里继承,因此除非您想更改/添加映射,否则您不需要 redfine aes()

也无需使用df[,2]语法,一旦您设置data = df1ggplot就已经在df1内部查看。

df1 <- data.frame(x = seq(2, 8, by = 2),
                  y = seq(30, 15, by = -5))
df2 <- data.frame(x = seq(2, 8, by = 2),
                  y = seq(12, 24, by = 4))

ggplot(df1, aes(x, log(y))) + 
   geom_line() +
   geom_line(data = df2, color = "red") # re-define data and overwrite top layer inheritance

在此处输入图片说明

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM