基于多个条件对ggplot中的离散x轴进行排序

杰斯

我想创建一个可视化视图,以有序堆积条形图显示600个教室的种族组成。X是教室,会有600个垂直堆叠的酒吧,每个种族的百分比用不同的颜色表示。它将进行排序,以便您大致可以看到多少教室具有一定的组成。

问题是我似乎找不到基于多个变量对x轴进行排序的方法(按种族1,种族2等排序)。

这是我尝试过的可复制代码。

teacher <- c(rep("a", 6), rep("b", 10), rep("c", 6))
studentrace <- c(rep("blk", 3), rep("white", 6), rep("latinx", 3), 
rep("blk", 7), rep("white", 3))
my.df <- data.frame(teacher, studentrace)

library(dplyr)
bars <- my.df %>%
  group_by(teacher, studentrace) %>%
  summarise(n=n()) %>%
  mutate(percent=n/sum(n))

library(ggplot2)
ggplot(bars, aes(x=teacher, y=percent)) +
  geom_col(aes(fill=studentrace))

#best solution so far, but won't sort using multiple variables
ggplot(bars, aes(x=reorder(teacher, PERCENTWHITE), y=percent)) +
  geom_col(aes(fill=studentrace))

#where percent white is a variable I merged into my longform dataset

这是我得到的...但是我希望能够按x,y,z排序...(https://drive.google.com/file/d/1zDX5eRGZlo2vf33WNlz74ybWSuaxO8jp/view?usp=sharing

谢谢!!

在此处输入图片说明

德马西林

一种选择是让你之前调用所需的顺序gglot,直接在你的数据集,与功能arrange()(可以排序根据几个变量这种方式),然后在使用aes()你的ggplot功能fct_inorder()forçats库,以保持与数据集中的顺序相同。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章