在Hadley Wickham的《ggplot2: Elegant Graphics for Data Analysis》一书的第7章中有这个例子图表,其中每个面板上都显示了三种颜色的z的平均点:
以下是书中提供的制作该图表的代码:
df <- data.frame(
x = rnorm(120, c(0, 2, 4)),
y = rnorm(120, c(1, 2, 1)),
z = letters[1:3]
)
df_sum <- df %>%
group_by(z) %>%
summarise(x = mean(x), y = mean(y)) %>%
rename(z2 = z)
ggplot(df, aes(x, y)) +
geom_point() +
geom_point(data = df_sum, aes(colour = z2), size = 4) +
facet_wrap(~z)
理想情况下,保持颜色名称为z而不是重新命名为z2应该产生相同的结果:
df_sum <- df %>%
group_by(z) %>%
summarise(x = mean(x), y = mean(y))
df_sum <- df %>%
group_by(z) %>%
summarise(x = mean(x), y = mean(y))
ggplot(df, aes(x, y)) +
geom_point() +
geom_point(data = df_sum, aes(colour = z), size = 4) +
facet_wrap(~z)
但这样做会使每个面上只出现一个有颜色的点:
这是有原因的吗?