我正在使用澳大利亚运动员数据集学习 R。
通过使用 ggplot,我可以绘制这样的直方图。
library(DAAG)
ggplot(ais, aes(wt, fill = sex)) +
geom_histogram(binwidth = 5)
通过使用 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)
创建的变量是一个因素,如果您指定级别的顺序,您可以对这些方面进行不同的排序(这里有很多问题表明,如果您搜索它们 - 与为 ggplot 条形图重新排序条相同)。您还可以让比例变化 - 查看 ?facet_wrap
了解更多详细信息。
通常,您不应该创建更多数据框。创建 ais1
和 ais2
通常是可以避免的,如果您对单个数据集使用单个数据框,您的生活会更简单。添加新的分组列可以让事情井井有条。
关于r - 拆分数据以在 R 中并排绘制直方图,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48779181/