【发布时间】:2020-05-14 20:02:23
【问题描述】:
我被要求制作一个小提琴图,显示四级大学中学生的 ACT 分数分布(大学根据质量衡量标准进行分级。)该图应该有四把小提琴,每个质量层都有一把(即x 轴)。 y 轴将是 ACT 分数。小提琴越宽,该级别学生的 ACT 分数越高。
提供给我的数据已经按每个级别中具有特定 ACT 分数的学生百分比进行了细分。它的结构是这样的(这不是真实数据,只是一个虚构的样本):
structure(list(score = c(1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 1, 2,
3, 4, 5, 6, 7, 8, 9, 10, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 1, 2,
3, 4, 5, 6, 7, 8, 9, 10), quality_tier = c("Tier 4", "Tier 4",
"Tier 4", "Tier 4", "Tier 4", "Tier 4", "Tier 4", "Tier 4", "Tier 4",
"Tier 4", "Tier 3", "Tier 3", "Tier 3", "Tier 3", "Tier 3", "Tier 3",
"Tier 3", "Tier 3", "Tier 3", "Tier 3", "Tier 2", "Tier 2", "Tier 2",
"Tier 2", "Tier 2", "Tier 2", "Tier 2", "Tier 2", "Tier 2", "Tier 2",
"Tier 1", "Tier 1", "Tier 1", "Tier 1", "Tier 1", "Tier 1", "Tier 1",
"Tier 1", "Tier 1", "Tier 1"), pct_students = c(0.25, 5, 10,
15, 25, 15, 10, 12, 7, 0.75, 1.5, 6, 8, 12, 34, 17, 10, 6, 4,
1.5, 5, 5, 13, 18, 5, 22, 13, 9, 5, 5, 0.8, 1, 14, 20, 25, 20,
9, 8, 2, 0.2)), row.names = c(NA, -40L), class = c("tbl_df",
"tbl", "data.frame"))
我不知道如何把它变成小提琴情节。网上所有的教程都说使用 ggplot + geom_violin。但是它们都没有包含一个示例,其中您实际上得到了一个值的百分比分布,而不是自己计算百分比分布。我应该如何重组这些数据以便我可以制作小提琴图,或者如果我不能重组数据,我应该要求什么数据?
【问题讨论】:
-
您能展示一下您尝试过的代码吗?这将有助于更好地理解您的问题。
-
你知道每个层级的学生人数吗?