有人可以解释ggplot和geom_point之间的区别吗?

时间:2019-03-21 19:32:11

标签: r ggplot2

我正在以两种不同的方式绘制相同的数据,我认为结果数字将是相同的,因为它们都使用了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)

enter image description here

一起绘制点

g2 <- ggplot(df,
             mapping = aes(x = A, y = B, colour = color)) + 
  geom_point(alpha = 0.05) + 
  scale_colour_manual(values = c("grey", "red", "blue"))

g2

1 个答案:

答案 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")

enter image description here

从重叠部分可以看到,每个后续行都绘制在先前值的顶部。

因此,当您绘制单独的子集时,首先绘制的所有点(所有灰色点)将在底部,依此类推,最后绘制的点(蓝色)在顶部。一次绘制所有图形时,它们将按照它们在数据中出现的顺序进行绘制。