【发布时间】:2017-04-29 17:00:16
【问题描述】:
我的数据:
a <- sample(1:5, 100, replace = TRUE)
b <- sample(1:5, 100, replace = TRUE)
c <- sample(1:10, 100, replace = TRUE)
d <- sample(1:40, 100, replace = TRUE)
df <- data.frame(a, b, c, d)
使用ggplot2,我在x = a 和y = b 上创建了散点图,二维加权(colour = c 和size = d)。请注意,x 和 y 是有意为 1:5。
很明显,不同大小和颜色的点因此重叠,所以我尝试了jitter以避免重叠:
ggplot(df, aes(a, b, colour = c, size = d)) +
geom_point(position = position_jitter())
现在我想让这些点更紧密地聚集在一起,所以我尝试了几个
height 和 width 的组合用于抖动功能,例如
ggplot(df, aes(a, b, colour = c, size = d)) +
geom_point(position = position_jitter(width = 0.2, height = 0.2))
抖动使点仍然重叠,并将它们随机分布在给定区域上。
有没有办法让点完全不重叠,但尽可能紧密地聚集在一起,甚至可能接触,也不“并排”或堆叠? (在某种程度上,创造了一种带有小点的气泡)?
谢谢!
【问题讨论】:
-
您尝试过使用
geom_dotplot吗?我一直在玩它几分钟,但不能让它做你想做的事。但这通常是我制作堆叠点图的方式 -
@Reilstein:感谢您的帮助!不幸的是,geom_dotplot 不断将点堆叠成一条线,我也没有得到不同的点大小......
-
是的,我遇到了同样的问题。我能够将点放在正确的位置,但无法将颜色和大小映射到它们。看起来 ggbeeswarm 可能是适合您的方式。
标签: r plot ggplot2 overlap scatter