r - ggplot2中的点颜色和构面
问题描述
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)
但是这样做会使得每个面只出现一个彩色点:
是否有一个原因?
解决方案
不,它不应该产生相同的结果。当您使用facet_wrap
by variablez
时,您拆分每个方面面板的数据,仅绘制属于 a、b 或 c 的内容(您的“不正确”图表)。通过重命名z
,z2
您可以保留黑点的facet_wrap
by ,但仍会在每个面板中绘制每个彩色点(因为没有可以使用的变量)。z
df_sum
z
facet_wrap
推荐阅读
- reactjs - 在 React 和 Gatsby 中按 className 选择 dom 元素的正确方法
- javascript - 在 Github 页面上部署 Angular Universal?
- docusignapi - 如何在具有不同路由顺序的docusign API中添加相同的收件人?
- python - 为什么总是显示最稀有的输出?(Python 3)
- r - ggplot2 - 手动将箱线图分面标签指定为符号/数学表达式
- shell - 在我的 shell (ZSH) 中更改目录和文件的颜色
- javascript - 基于层次的数据表示的数据结构
- c - 为什么在传递函数“pthread_create()”后变量“sum”的值会发生变化?
- apache-kafka - 在 kafka 流实例端反复收到 NotCoordinatorException
- android - 未能将视图设置为不可见