面对男生女生去过的前20个地方的排列
Faceting the arrangement of the top 20 places visited by boys and girls
我在尝试排total_number的男生和女生的时候遇到了这个问题,但是有男生排在前20名女生排不到前20名。可视化没有显示样本的均匀表示,因为女孩的最高位置不是男孩的最高位置,反之亦然(尽管他们确实访问了相似的地方,只是数量不多)。
place
Category2
total_number
Andorra la Vella
boy
66394
Yerevan
boy
33539
Vienna
boy
29757
Baku
girl
24615
Minsk
girl
23847
Brussels
girl
23691
Sarajevo
boy
23285
Sofia
boy
21309
Oslo
girl
20982
Zagreb
boy
19885
我按 total_number 降序排列,使用 head(20) 并尝试绘制它。这看起来不太好,因为男孩和女孩(第 2 类)有空位和乱序。我想安排数据集的前 20 名,但我希望 total_number 的安排在 Category2 的女孩和男孩之间交替显示,以显示平等的代表性,并且在可视化的前 20 名中没有空白。我该怎么做?
bg_places_top <- bg_places %>%
group_by(place, Category2) %>%
summarise(total_number = n()) %>%
arrange(desc(total_number) %>%
head(20) %>%
ggplot(aes(x = place, y = total_number)) +
geom_col(position = "dodge") +
theme(axis.text.x = element_text(angle = 90, vjust = 0.5, hjust=1)) +
facet_wrap(~Category2))
visualization: boys on left and girls on right
如果我理解正确的话,一种解决方法是将 facet_wrap 中的比例参数设置为“免费”并根据 total_number 对位置进行排序(我使用 - 反转升序):
library(ggplot2)
ggplot2::ggplot(bg_places, aes(x = reorder(place, -total_number), y = total_number)) +
ggplot2::geom_col() +
# use "free_x" if you want the all y-axis to have the same scale/height
ggplot2::facet_wrap(~Category2, scales = "free")
我在尝试排total_number的男生和女生的时候遇到了这个问题,但是有男生排在前20名女生排不到前20名。可视化没有显示样本的均匀表示,因为女孩的最高位置不是男孩的最高位置,反之亦然(尽管他们确实访问了相似的地方,只是数量不多)。
place | Category2 | total_number |
---|---|---|
Andorra la Vella | boy | 66394 |
Yerevan | boy | 33539 |
Vienna | boy | 29757 |
Baku | girl | 24615 |
Minsk | girl | 23847 |
Brussels | girl | 23691 |
Sarajevo | boy | 23285 |
Sofia | boy | 21309 |
Oslo | girl | 20982 |
Zagreb | boy | 19885 |
我按 total_number 降序排列,使用 head(20) 并尝试绘制它。这看起来不太好,因为男孩和女孩(第 2 类)有空位和乱序。我想安排数据集的前 20 名,但我希望 total_number 的安排在 Category2 的女孩和男孩之间交替显示,以显示平等的代表性,并且在可视化的前 20 名中没有空白。我该怎么做?
bg_places_top <- bg_places %>%
group_by(place, Category2) %>%
summarise(total_number = n()) %>%
arrange(desc(total_number) %>%
head(20) %>%
ggplot(aes(x = place, y = total_number)) +
geom_col(position = "dodge") +
theme(axis.text.x = element_text(angle = 90, vjust = 0.5, hjust=1)) +
facet_wrap(~Category2))
visualization: boys on left and girls on right
如果我理解正确的话,一种解决方法是将 facet_wrap 中的比例参数设置为“免费”并根据 total_number 对位置进行排序(我使用 - 反转升序):
library(ggplot2)
ggplot2::ggplot(bg_places, aes(x = reorder(place, -total_number), y = total_number)) +
ggplot2::geom_col() +
# use "free_x" if you want the all y-axis to have the same scale/height
ggplot2::facet_wrap(~Category2, scales = "free")