我正在以两种不同的方式绘制相同的数据,我认为结果数字将是相同的,因为它们都使用了geom_point
。但是,它们是完全不同的。有谁知道这两组命令之间的区别?在这两种情况下,我都尝试使用三种颜色类别绘制数据。我的猜测是,第一种方法只是单独绘制颜色集,而Alpha仅考虑来自同一类的点。
分别绘制每组颜色
g1 <- ggplot(df) +
geom_point(data = df[df$color==1, ],
mapping = aes(x=A, y=B), col = "grey", alpha = 0.05,) +
geom_point(data = df[df$color==2, ],
mapping = aes(x=A, y=B), col = "red", alpha = 0.05) +
geom_point(data = df[df$color==3, ],
mapping = aes(x=A, y=B), col = "blue", alpha = 0.05)
一起绘制点
g2 <- ggplot(df,
mapping = aes(x = A, y = B, colour = color)) +
geom_point(alpha = 0.05) +
scale_colour_manual(values = c("grey", "red", "blue"))
答案 0 :(得分:3)
确认评论内容。单层将按行顺序绘制。这是一个示范
dd = data.frame(
x = c(1:4, 4:1) / 4,
y = rep(c(1, 1.25), each = 4),
group = rep(letters[1:4], 2),
id = 1:8
)
dd
# x y group id
# 1 0.25 1.00 a 1
# 2 0.50 1.00 b 2
# 3 0.75 1.00 c 3
# 4 1.00 1.00 d 4
# 5 1.00 1.25 a 5
# 6 0.75 1.25 b 6
# 7 0.50 1.25 c 7
# 8 0.25 1.25 d 8
library(ggplot2)
ggplot(dd, aes(x, y, color = group)) +
geom_point(size = 60, show.legend = FALSE) +
coord_fixed() +
geom_text(aes(label = id), color = "black")
从重叠部分可以看到,每个后续行都绘制在先前值的顶部。
因此,当您绘制单独的子集时,首先绘制的所有点(所有灰色点)将在底部,依此类推,最后绘制的点(蓝色)在顶部。一次绘制所有图形时,它们将按照它们在数据中出现的顺序进行绘制。