如何使用ggpaired来比较一堂课前后的测试分数,并按行数计算权重?

bvk5enib  于 2023-11-14  发布在  其他
关注(0)|答案(1)|浏览(94)

我试着用ggpaired来显示学生在一堂课前后的分数增加,用12分制。我有一个数据框架,每个学生在一堂课前后的正确答案数。
| 之前|后|
| --|--|
| 6 | 8 |
| 5 | 9 |
等x 40名学生
我遇到的问题是,虽然ggpaired在显示整体增长方面做得很好,但由于这是离散数据,它失去了多少学生的分数增加了X的权重。我能够添加geom_count(),它可以让人感觉到有多少学生在前测试中得分为X,在后测试中得分为Y,但我希望为连接点的线条添加类似的权重
我已经制作了这个图表,这是伟大的,但我想添加重量的线的比例,学生谁实现了X的改善
x1c 0d1x的数据
任何帮助是非常感谢!
我发现这篇文章展示了一个如何做到这一点的例子,但不太适合我的用例,我不太擅长R编码,无法理解如何将其更改为适用于我的情况:Making a ggpaired plot where line.color is a weighted function?

ozxc1zmp

ozxc1zmp1#

我不认为在ggpaired中有办法做到这一点,但重要的是要认识到,ggpaired只是geom_boxplotgeom_line的 Package 器,带有一些准备的数据争论和主题选择,所有这些我们都可以自己完成以获得所需的结果:

library(tidyverse)

box_df <- df %>%
  pivot_longer(Before:After, names_to = "Condition", values_to = "Value") %>%
  mutate(Condition = factor(Condition, c("Before", "After")))

joining_lines <- df %>%
  count(Before, After) %>%
  mutate(line_group = row_number()) %>%
  pivot_longer(Before:After, names_to = "Condition", values_to = "Value") %>%
  mutate(Condition = factor(Condition, c("Before", "After")))

ggplot(box_df, aes(Condition, Value)) +
  geom_boxplot() +
  geom_count() +
  geom_line(aes(group = line_group, linewidth = n), data = joining_lines) +
  theme_classic(base_size = 16) +
  scale_linewidth(range = c(0.25, 1.5)) +
  theme(legend.position = "top")

字符串


的数据

数据举例

set.seed(1)

df <- data.frame(Before = rbinom(40, 10, 0.5), After  = rbinom(40, 10, 0.75))

相关问题