我正在尝试使用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()
结果:
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句