R:ggplot(x,y,z)为不同的z值创建多个线性回归线

时间:2016-06-23 10:56:23

标签: r ggplot2 linear-regression

我有一个带有 x,y和z 数据的插值DF。

x值介于-250和+2000之间,Y值介于-2和+2之间,z值介于75和90之间。

使用ggplot2,我创建了一个带有 fill = z 的2D图(geom_raster),这会产生不同z值的热图。

现在我想为不同的z值创建多个线性回归线(例如a" lm"对于z = 80,z = 85等等)并将它们添加到geom_raster图上,包括图例

我该怎么做? 如果我没有确切说明,请告诉我。

编辑: 这就是我的ggplot的样子:

plot <- interpdf %>%
  filter(!is.na(z)) %>%
  tbl_df() %>%
  ggplot(aes(x = x, y = y, z = z, group = z)) + 
  geom_raster( aes(fill = z), interpolate = FALSE, alpha=alpha) +
  scale_x_continuous(limits = c(-200,2300))+
  scale_y_continuous(limits = c(-1.8,1.5))+
  geom_contour(color = color, alpha = 0.1) + 
  scale_fill_distiller(palette="YlGnBu", na.value="white")

而interpdf数据如下所示:

   x      y       z
---------------------
-2100    -2.4    83.5
956.4    -1.3    84.3
1255.1   1.34    88.9    
...      ...     ...

以下是我的情节: enter image description here

1 个答案:

答案 0 :(得分:0)

尝试类似

的内容
df <- data.frame(x=rnorm(100),y=rnorm(100,10),z=rep(1:4,25))

library(ggplot2)
ggplot() + geom_smooth(data = df, aes(x=x,y=y, group=z, colour=z), se=F)

enter image description here