Jer*_*Who 4 r smooth ggplot2 loess
如何添加将另一列视为权重的黄土平滑?
假设我有以下data.frame:
library(ggplot2)
df <- data.frame(x=seq(1:21))
df$y <- df$x*0.3 + 10
df$weight <- 10
df[6,] <- c(6, 0.1, 1)
df[7,] <- c(7, 0.1, 1)
df[13,] <- c(13, 0.1, 1)
df[14,] <- c(14, 0.1, 1)
df[20,] <- c(20, 0.1, 1)
df[21,] <- c(21, 0.1, 1)
ggplot(data=df, aes(x=x, y=y, size=weight)) + geom_point() + geom_smooth(method=loess, legend=FALSE)
Run Code Online (Sandbox Code Playgroud)
绘制黄土平滑表示以下内容:

但是我想使用柱子重量使得黄土与每个重量为10的点相同10倍是相同的:
df2 <- subset(df, !(x %in% c(6,7,13,14,20,21)))
df2$weight <- 1
df3 <- df2
for(i in seq(1:9)){
df3 <- rbind(df3, df2)
}
df3 <- rbind(df3, c(6, 0.1, 1))
df3 <- rbind(df3, c(7, 0.1, 1))
df3 <- rbind(df3, c(13, 0.1, 1))
df3 <- rbind(df3, c(14, 0.1, 1))
df3 <- rbind(df3, c(20, 0.1, 1))
df3 <- rbind(df3, c(21, 0.1, 1))
ggplot(data=df3, aes(x=x, y=y)) + geom_point() + geom_smooth(method=loess, legend=FALSE)
# or to demonstrate
ggplot(data=df3, aes(x=x, y=y)) + geom_jitter() + geom_smooth(method=loess, legend=FALSE)
Run Code Online (Sandbox Code Playgroud)

我找到了函数loess的参数权重.但我不知道如何从geom_smooth()调用它.
Jer*_*Who 11
我想我只需要为aes添加另一个参数:
ggplot(data=df, aes(x=x, y=y, size=weight, weight=weight)) + geom_point() + geom_smooth(method=loess, legend=FALSE)
Run Code Online (Sandbox Code Playgroud)

| 归档时间: |
|
| 查看次数: |
6933 次 |
| 最近记录: |