[英]How to plot density of points in one dimension with different factors in ggplot2
我正在尝试使用ggplot2在图上放置单个点,但是由于有很多点,因此很难衡量点的密集程度。 在这里,有两个因素要与连续变量进行比较,我想更改这些点的颜色以反映它们与邻居的紧密程度。 我在ggplot2中使用geom_point函数来绘制点,但是我不知道如何在颜色上提供正确的信息。
这是我正在使用的代码:
s1 = rnorm(1000, 1, 10)
s2 = rnorm(1000, 1, 10)
data = data.frame(task_number = as.factor(c(replicate(100, 1),
replicate(100, 2))),
S = c(s1, s2))
ggplot(data, aes(x = task_number, y = S)) + geom_point()
生成此图:
但是,我希望它看起来更像此图像,但具有一维而不是二维(我是从该网站借来的: https : //slowkow.com/notes/ggplot2-color-by-density/ ):
如何更改第一个图的颜色使其类似于第二个图的颜色?
我认为棘手的事情是您想要显示原始值,然后评估这些值下的密度。 我从这里借来实现这一目标。
library(dplyr)
data = data %>%
group_by(task_number) %>%
# Use approxfun to interpolate the density back to
# the original points
mutate(dens = approxfun(density(S))(S))
ggplot(data, aes(x = task_number, y = S, colour = dens)) +
geom_point() +
scale_colour_viridis_c()
结果:
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.