r - 拆分数据以在 R 中并排绘制直方图

标签 r ggplot2 histogram

我正在使用澳大利亚运动员数据集学习 R。

通过使用 ggplot,我可以绘制这样的直方图。

library(DAAG)

ggplot(ais, aes(wt, fill = sex)) + 
  geom_histogram(binwidth = 5)

enter image description here

通过使用 summary(ais$wt),第三个四分位数是 84.12。现在我想按 wt 84.12 拆分数据。并相应地绘制 2 个相似的直方图(并排)

拆分为:

ais1 = ais$wt[which(ais$wt>=0 & ais$wt<=84.12)]
ais2 = ais$wt[which(ais$wt>84.12)]

但我不知道如何将它们放入绘图中。我试过了,但它不起作用:

ggplot(ais1, aes(wt, fill = sex)) +...

如何绘制直方图(相应地并排放置 2 个相似的直方图)?

最佳答案

将拆分作为列添加到您的数据中

ais$wt_3q = ifelse(ais$wt < 84.12, "Quartiles 1-3", "Quartile 4")

然后使用分面:

ggplot(ais, aes(wt, fill = sex)) + 
  geom_histogram(binwidth = 5) +
  facet_wrap(~ wt_3q)

enter image description here

创建的变量是一个因素,如果您指定级别的顺序,您可以对这些方面进行不同的排序(这里有很多问题表明,如果您搜索它们 - 与为 ggplot 条形图重新排序条相同)。您还可以让比例变化 - 查看 ?facet_wrap 了解更多详细信息。

通常,您不应该创建更多数据框。创建 ais1ais2 通常是可以避免的,如果您对单个数据集使用单个数据框,您的生活会更简单。添加新的分组列可以让事情井井有条。

关于r - 拆分数据以在 R 中并排绘制直方图,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48779181/

相关文章:

r - 使用stat_summary的标准误差线

r - 制作频率直方图以显示每个附加样本后的变化

r - 当字符串由数字组成时,如何通知 R 转义字符(em-dash)已完成?

r - R 中的 for 循环与 while 循环

r - 如何将自定义 ggplot 别名存储为 .R 脚本中的 `list` 对象,并沿着所需的标签向量获取它们

PHP 列表合并相似值并计算值的数量

python - 如何在 matplotlib 中选择直方图条的独特颜色?

r - R中的CMY颜色函数

r - Tidyr 与可选组分开

r - 绘制彼此相邻的国家/地区形状文件并保持比例