如何为ggplot强制geom_smooth渲染?

Eri*_*ric 4 r ggplot2

我想为这个多组图强制渲染一条更平滑的线,即使在一个组只有一个或两个值的情况下也是如此。见下文:

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)
Run Code Online (Sandbox Code Playgroud)

在此处输入图片说明

这是我想看到的输出:

在此处输入图片说明

Uwe*_*Uwe 5

该调用提供了许多警告,可以通过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
  )
Run Code Online (Sandbox Code Playgroud)

并获得了 A 组和 B 组的平滑曲线,分别只有 3 个和 2 个数据点。

在此处输入图片说明