微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

geom_bar() + facet_wrap() 中的列宽不一致

如何解决geom_bar() + facet_wrap() 中的列宽不一致

我保证我已经到处寻找答案并尝试了我能找到的所有解决方案,但没有任何效果。以下是分面 geom_bar() 图的代码

这里是数据集piDF的一瞥:

Rows: 20,093
Columns: 6
Groups: student_id,domain [20,060]
$ student_id                <dbl> 222484,222484,220337,221451,222725,22...
$ student_grade             <dbl> 0,...
$ subject                   <chr> "Math","Reading","Math",...
$ domain                    <chr> "Number and Operations","Phonological Awareness","Algebra and Algebraic Thinking","Number and Operations","Pho...
$ lesson_grade              <dbl> 0,...
$ relative_lesson_placement <fct> Mid on Level,Early on Level,Mid on Level,1 Level Below,Early on Le...

这里是ggplot代码

plot1 <- piDF %>%
  filter(student_grade <= 8) %>%
  ggplot(aes(x = student_grade,fill = relative_lesson_placement)) + 
  geom_bar(position = "fill") +
  scale_x_discrete("Grade",limits = c(0:8),labels = c("K","1","2","3","4","5","6","7","8")) + 
  scale_y_continuous("Proportion relative placement",expand = c(0,0)) +
  scale_fill_manual("Relative Placement",values = rev(c("#e63939","#de7e7e","#ebeb4d","#70e65e","#37c44f","#29993c","#48addb")),labels = rev(c("3+ Levels Below","2 Levels Below","1 Level Below","Early on Level","Mid on Level","Late on Level","Above Level"))
                ) + 
   theme(axis.title.y = element_blank(),axis.text.y = element_blank()) +
   facet_wrap(vars(subject,factor(domain)),scales = "free_x")

这是结果的屏幕截图:

enter image description here

我不知道如何:
a) 去掉大多数图表最右侧的额外列,并且
b) 为什么几何图形的缩放比例与所有其他图形不同。

每个图形应该只有 9 列等宽。

非常感谢您的帮助。

解决方法

yh6 将 student_grade 更改为 char 的建议成功了。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。