繁体   English   中英

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

[英]Inconsistent Column width in geom_bar() + facet_wrap()

我 promise 我到处寻找答案并尝试了我能找到的所有解决方案,但没有任何效果。 以下是多面 geom_bar() plot 的代码:

下面是数据集 piDF 的一瞥:

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

这是结果的屏幕截图:

在此处输入图像描述

我无法弄清楚如何:
a) 去掉大多数图表最右边的多余列,并且
b) 为什么几何图形的缩放比例与所有其他图形不同。

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

非常感谢您的帮助。

yh6 将 student_grade 更改为 char 的建议起到了作用。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM