想象一下有3个等级。物理,数学,化学。 总成绩为(物理+数学+化学/ 3)
在x轴上,我以%表示总成绩。所以最好的学生是1.00,最差的学生是0.00,中位数的学生是0.50。
在y轴上,我想绘制每个班级的总成绩%化妆品。
看看是否有任何变化取决于学生的表现好坏,以及不同级别的学生擅长哪些课程。
以下是我当前数据框的副本。
Observations: 269,049
Variables: 3
$ TotalRank <dbl> 0.00, 0.30, 0.30, 0.29, 0.21, 0.68, 0.22, 0.02, 0.13, 0.44, 0.02, 0.37, 0.42, 0.40, 0.43, 0.55, 0...
$ Class <chr> "Chemistry", "Maths", "Maths", "Physics", "Maths", "Maths", "Physics", "Maths", "Chemistry"...
$ Value <dbl> 0.34, 0.36, 0.36, 0.43, 0.41, 0.38, 0.41, 0.39, 0.34, 0.35, 0.35, 0.34, 0.34, 0.39, 0.33, 0.35, 0...
我的目标是制作一个如下图:
我的代码:
ggplot(DATAFRAME, aes(x = TotalRank, y = Value, fill = Class)) +
geom_area()
x轴似乎工作正常,但在y轴上它只是为每个x值加起来,而不是绘制那个点的平均值。
如何绘制每个x点的平均y值,分为让我们说100个箱子。
编辑:这就是我的情节的样子,请忽略值,因为它们就是一个例子。
这就是我构建数据帧的方式。
dataframe <- dataframe %>%
mutate(ChemistryPc = round(Chemistry/TotalGrade, 2),
MathsPc = round(Maths/TotalGrade, 2),
PhysicsPc = round(Physics/TotalGrade, 2),
TotalRank = round(percent_rank(TotalGrade), 2))
dataframe <- dataframe %>%
gather(key = 'Class', value = 'Value', -TotalRank)
以下是值:
Chemistry Maths Physics TotalGrade
1 47.63 20.41 70.31 138.35
2 142.88 95.25 163.29 401.42
3 142.88 95.25 163.29 401.42
4 170.10 77.11 145.15 392.36
5 138.35 65.77 136.08 340.20
6 229.06 161.03 210.92 601.01
7 142.88 68.04 136.08 347.00
8 86.18 52.16 83.91 222.25
9 102.06 77.11 120.20 299.37
10 174.63 122.47 195.04 492.14
11 74.84 47.63 92.99 215.46
12 154.22 115.67 183.70 453.59
13 163.29 111.13 204.12 478.54
14 181.44 99.79 188.24 469.47
15 161.03 127.01 197.31 485.35
16 190.51 120.20 231.33 542.04
17 165.56 124.74 201.85 492.15
18 254.01 131.54 219.99 605.54
19 258.55 174.63 240.40 673.58
20 233.60 154.22 247.21 635.03