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
你知道如何获得 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