ggplot2 + 散点图 + geom_path

ggplot2 + scatterplot + geom_path

你知道如何获得 Jake Kaupp 在他的情节中实现的曲线效果吗?

这种方法看起来不像你的例子那么好,但它是一个开始,一些小动作可能会让你完成剩下的事情。

首先,一些要处理的数据:

x <- seq(1:20)
y <- jitter(x,amount=1.5)
df <- data.frame(x,y)

使用ggplot2的方法是画一个跨度非常小的geom_smooth(小到足以导致很多错误,如你所见),然后用白色边框绘制点最上面的。

ggplot(df, aes(x,y)) + 
  geom_smooth(se=F, colour="black", span=0.15) +
  geom_point(fill="black", colour="white", shape=21, size=2.5) +
  theme_minimal()

缺点: 正如我上面提到的,您会在 loess 拟合中看到许多关于奇点的错误,因为跨度太小了。其次,您会注意到并非所有点都在线上居中,这是有道理的,因为您使用的是适合该线的黄土。最后,似乎没有办法改变点周围线条的宽度,所以你最终会得到一个很细的白色边框。

看起来类似于:

ggplot(full_data, aes(y = total_consumption_lbs, x = milk_production_lbs)) +
  geom_xspline2(aes(s_open = TRUE, s_shape = 0.5))

其中 geom_xspline2() 来自 library(ggalt)

但别问我,这是他的源代码:

https://github.com/jkaupp/tidytuesdays/blob/master/2019/week5/R/analysis.R