ggplot2中的点颜色和面板

3
在Hadley Wickham的《ggplot2: Elegant Graphics for Data Analysis》一书的第7章中有这个例子图表,其中每个面板上都显示了三种颜色的z的平均点:

enter image description here

以下是书中提供的制作该图表的代码:

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)

但这样做会使每个面上只出现一个有颜色的点:

enter image description here

这是有原因的吗?

1个回答

3
不,它不应该产生相同的结果。当您使用变量zfacet_wrap时,您将数据拆分为每个面板,仅绘制属于a、b或c的内容(即您的“错误”图形)。通过将z重命名为z2,您可以保留黑点的facet_wrap,但仍然在每个面板中绘制每个彩色点(因为在df_sum中没有变量z可供facet_wrap使用)。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接