r绘制多个ggplot,png上的stat_smooth

Bry*_*Han 1 png r raster ggplot2

我正在尝试使用ggplot()或stat_smooth()以及png作为背景,使用平滑线绘制多个数据帧.

我有三个数据帧

data1 <- data.frame(Max.x, Max.y)  
data2 <- data.frame(Med.x, Med.y)  
data3 <- data.frame(Min.x, Min.y)  
Run Code Online (Sandbox Code Playgroud)

和图片(png)文件

mypng <- readPNG("picture.png")
Run Code Online (Sandbox Code Playgroud)

我发现,使用stat_smooth(span = 0.4),它将创建一条平滑线,遍历数据框中的所有点.

现在我想在mypng上绘制三条流畅的线条

我尝试了几件事.

ggplot(data1, aes(x=Max.x, y=Max.y))+scale_x_continuous(limits = c(126,129))+scale_y_continuous(limits = c(37.5, 38.5))+ annotation_raster(mypng, xmin=126, xmax=129, ymin=37.5, ymax=38.5)+stat_smooth(span=0.4) 
Run Code Online (Sandbox Code Playgroud)

data2和data3也是如此.这会在png上绘制每一行,但我找不到在同一个png上获取所有三行的方法.
另外,请注意,绘图必须设置x,y max和min b/c我的数据落在这些坐标之间.

我试过的另一件事:

ggplot()+annotation_raster(mypng, xmin=126, xmax=129, ymin=37.5, ymax=38.5)+stat_smooth(data=data1, aes(x=Max.x, y=Max.y), span=0.4)+stat_smooth(data=data2, aes(x=Med.x, y=Med.y), span=0.4)+stat_smooth(data=data3, aes(x=Min.x, y=Min.y), span=0.4)+scale_x_continuous(limits=c(126,129))+scale_y_continuous(limits=c(37.5,38.5))
Run Code Online (Sandbox Code Playgroud)

这绘制了所有三条平滑线.然而,图片没有显示出来.

我现在卡住了...我可以在mypng上得到三个不同的情节.我可以得到所有三个情节,但不是我的脑袋.我怎样才能在mypng上获得所有三行?

Mis*_*ist 5

这个怎么样:

library(png)
library(ggplot2)

data1 <- data.frame(series = rep("max",10),
                    x = rnorm(10, mean = 127.5, sd = 1), 
                    y = rnorm(10, mean = 38, sd = 0.25))  
data2 <- data.frame(series = rep("med",10),
                    x = rnorm(10, mean = 127.5, sd = 1), 
                    y = rnorm(10, mean = 38, sd = 0.25))  
data3 <- data.frame(series = rep("min",10),
                    x = rnorm(10, mean = 127.5, sd = 1), 
                    y = rnorm(10, mean = 38, sd = 0.25))  

df <- rbind(data1,data2,data3)

mypng <- readPNG("C:/Users/lorenzr/Pictures/family.png")

ggplot(df, aes(x=x, y=y, colour = series))+
  scale_x_continuous(limits = c(126,129))+
  scale_y_continuous(limits = c(37.5, 38.5))+
  annotation_raster(mypng, xmin=126, xmax=129, ymin=37.5, ymax=38.5)+
  stat_smooth(span=0.4) 
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述