gpt4 book ai didi

R ggplot2 - 具有来自第三个连续变量的渐变颜色的geom_smooth

转载 作者:行者123 更新时间:2023-12-05 03:09:18 26 4
gpt4 key购买 nike

有没有办法绘制平滑曲线 (x=var1, y=var2) 并根据第三个连续变量 (z=var3) 对其着色?我正在使用以下代码:

    library(ggplot2)

x = runif(100,-20,20)
y = 2*x+x^2+rnorm(100,0,50)
z = 0.5*x+rnorm(100,0,2)
df = data.frame(x=x,y=y,z=z)

ggplot(data=df,aes(x=x,y=y))+geom_smooth(method='loess', aes(color=z),se=F)

但是,平滑线仍然是纯蓝色。

使用内部变量“..y..”而不是 var3 为相对于 var2 的行着色。

    ggplot(data=df,aes(x=x,y=y))+geom_smooth(method='loess', aes(color=..y..),se=F) 

是否有另一个内部变量需要调用以便根据 var3 为线条着色?

我可以使用 geom_line 生成所需的绘图,但我想改为对其进行平滑处理。

最佳答案

您在使用 geom_line 的正确轨道上,您只需要在预先平滑的数据上使用它。将你的数据框如上,然后:

df$predict <- predict(loess(y~x, data = df))

ggplot(df, aes(x = x,y = predict)) +
geom_line(aes(colour = z))

如果您的 x 有很大差距,这会产生难看的结果;它们将作为点之间的平坦部分出现。通过将 newdata= 提供给 predict() 并将其存储在第二个数据帧中,有一些解决方法,但是您还需要重新计算 z对于那些新的 x 值。

enter image description here

关于R ggplot2 - 具有来自第三个连续变量的渐变颜色的geom_smooth,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43567212/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com