我想为这个多组图强制渲染一条更平滑的线,即使在一个组只有一个或两个值的情况下。见下文:
library(ggplot2)
set.seed(1234)
df <- data.frame(group = factor(c(rep("A",3),rep("B",2),"C")), x = c(1,2,3,1,2,2), value = runif(6))
ggplot(df,aes(x=x,y=value,group=group,color=group))+
geom_point(size=2)+
geom_line(stat="smooth",method = "loess",size = 2, alpha = 0.3)
这是我想看到的输出:
最佳答案
调用给出了很多警告,可以通过 warnings()
检查。 .其中一个警告说“零宽度邻域。使跨度更大”。
所以,我用附加的 span = 1
尝试了 OP 的代码。范围:
library(ggplot2)
ggplot(df, aes(x = x, y = value, group = group, color = group)) +
geom_point(size = 2) +
geom_line(
stat = "smooth",
method = "loess",
span = 1,
size = 2,
alpha = 0.3
)
并获得了 A 组和 B 组的平滑曲线,分别只有 3 个和 2 个数据点。
关于r - 如何为ggplot强制geom_smooth渲染?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54008014/