【问题标题】:Point colors and facets in ggplot2ggplot2中的点颜色和构面
【发布时间】:2019-01-06 08:30:37
【问题描述】:

Hadley Wickham 的“ggplot2:用于数据分析的优雅图形”一书在第 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)

但是这样做会使得每个面只出现一个彩色点:

这是有原因的吗?

【问题讨论】:

    标签: r ggplot2


    【解决方案1】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-02-08
      • 1970-01-01
      • 2022-09-27
      • 1970-01-01
      • 2021-10-29
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多