r - 如何为ggplot强制geom_smooth渲染?

标签 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)

enter image description here

这是我想看到的输出:

enter image description here

最佳答案

调用给出了很多警告,可以通过 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 个数据点。

enter image description here

关于r - 如何为ggplot强制geom_smooth渲染?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54008014/

相关文章:

r - 如何在plotly R中修复条的宽度

r - 在 R 中使用 rpart() 时实际使用的字符 (0)

r - 如何在 geom_count ggplot 中的 prop 图例下方添加 stat_summary 点的第二个图例?

r - 如何避免 x 轴和 y 轴上的额外间距

r - 通过 strftime() 将 POSIXct 转换为字符会产生错误的结果

r - ggplot2 中仅连接连续数据的绘图线

r - 使用 geom_line 和 geom_ribbon 绘制两个 df 以及平均值和标准差

string - 在函数内将字符串传递给 ggplot2

python - 无法在 python jupyter 笔记本中使用 ggplot2

r - 在位置拆分 data.table