我试图创建按组内频率排序的分类数据的条形图。例如,使用钻石数据集,我希望条形图按“切割”分组的“清晰度”值的计数/频率排序。
data(diamonds)
library(tidyverse)
diamonds$cut <- as.character(diamonds$cut)
diamonds$clarity <- as.character(diamonds$clarity)
diamonds %>%
group_by(cut) %>%
count(clarity, order = FALSE) %>%
mutate(clarity = as.factor(reorder(clarity, n))) %>%
ggplot(aes(n, clarity, fill = cut)) +
geom_col(show.legend = FALSE) +
facet_wrap(~ cut, ncol = 2, scales = "free") +
labs(x = "count", y = NULL) +
theme_bw()
这将生成以下图形:
这是非常接近我想要的,但唯一的图表实际上是由清晰度频率排序的第一,“公平”。我如何使所有的条形图清晰度频率排序?
先谢谢你了。
2条答案
按热度按时间jum4pzuy1#
从概念上讲,如果你在每个图上有不同顺序的y轴,那么我认为你有五个不同的图,而不是一个单一的多面图。因此,您可以将其绘制为:
xqnpmsa82#
一种选择是使用
tidytext
包中的reorder_within
和scale_y_reorderd
: