在R中使用ggplot2覆盖两个图

use*_*440 2 r ggplot2

有两个数据帧- df1&df2从中我需要使用GGPLOT2和显示在同一图上以创建线图.

df1

 x   y 
2   30
4   25
6   20
8   15
Run Code Online (Sandbox Code Playgroud)

df2

 x   y 
2   12
4   16
6   20
8   24
Run Code Online (Sandbox Code Playgroud)

用于绘制第一个df,

p1 <- ggplot( df1, aes(x = df1[,1] , y = log(df1[,2]) ) )
p1 <- p1 + geom_line(aes(y = log(df1[,2])))
p1
Run Code Online (Sandbox Code Playgroud)

我们如何在数据帧的相同图形上获得相同的图表叠加 df2

Nat*_*ate 12

您只需要重新定义data您从中获取的资源.ggplot我将始终关注美学的初始化呼吁并尝试从那里继承.也不需要使用aes()语法,一旦你设置就df[,2]已经在内部查找.ggplotdf1

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
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述