首页 > 解决方案 > 如何在百分比图中添加误差线?

问题描述

我正在努力将误差线(带有标准误差)添加到百分比图中。我有一个包含问题 A/B 答案的数据集(RTA 列)。然后我有一个条件是RC。所以我想按 RC 条件分组,计算每种类型的答案,获取百分比,绘制它们并添加误差线。我已经制作了图表,但我似乎无法理解如何制作误差线。我知道如何为其他图表制作误差线,但在这里我不知道如何告诉 R 我想要百分比刻度的误差线。有什么建议么?

PS:我有几个参与者也做了几个项目

structure(list(Part = structure(c(1L, 1L, 1L, 1L, 1L, 1L, 1L, 
1L, 1L, 1L), .Label = c("1", "2", "3", "4", "5", "6", "7", "8", 
"9", "10", "11", "12", "13", "14", "15", "16", "17", "18", "20", 
"21", "22", "23", "24", "25", "26", "27", "28", "29", "30", "31", 
"32", "33", "34", "35", "36", "37", "38", "39", "40", "41", "42", 
"43", "44", "45", "46", "47", "48", "49", "50", "51", "52", "53", 
"54", "55", "56", "57", "58", "59", "60", "61", "62", "63", "64", 
"65", "66", "67", "68", "69", "70", "71", "72", "73", "74", "75", 
"76", "77", "78", "79", "80", "81", "82", "83", "84", "85", "86", 
"87", "90", "91", "92", "93", "94", "95", "96", "97", "98", "99", 
"100", "101", "102", "103", "104", "105", "106", "107", "108", 
"109", "110", "111", "112", "113", "114", "115", "116", "117", 
"118", "119", "120", "121", "122", "123", "124", "125", "126", 
"127", "128", "129", "130", "131", "132", "133", "134", "135", 
"136", "137", "138", "139", "140", "141", "142", "143", "144", 
"145", "146", "147", "148", "149", "151"), class = "factor"), 
    Item = structure(c(35L, 29L, 37L, 38L, 36L, 3L, 4L, 33L, 
    32L, 2L), .Label = c("1", "2", "3", "4", "5", "6", "7", "8", 
    "9", "10", "11", "12", "13", "14", "15", "16", "17", "18", 
    "19", "20", "21", "22", "23", "24", "25", "26", "27", "28", 
    "29", "30", "31", "32", "33", "34", "35", "36", "37", "38", 
    "39", "40", "41", "42", "43", "44", "45", "46", "47", "48", 
    "49", "50", "51", "52", "53", "54", "55", "56", "57", "58", 
    "59", "60", "61", "62", "63", "64", "65", "66", "67", "68", 
    "69", "70", "71", "72", "73", "74", "75", "76", "77", "78", 
    "79", "80", "81", "82", "83", "84", "85", "86", "87", "88", 
    "89", "90", "91", "92", "93", "94", "95", "96", "97", "98", 
    "99", "100", "101", "102", "103", "104", "105", "106", "107", 
    "108", "109", "110", "111", "112"), class = "factor"), RTA = structure(c(1L, 
    1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L), .Label = c("SN1", "SN2"
    ), contrasts = structure(c(-0.5, 0.5), .Dim = 2:1, .Dimnames = list(
        c("SN1", "SN2"), "2-1")), class = "factor"), TR_respuesta = c(2372, 
    2593, 4661, 2680, 4072, 6280, 3387, 2159, 3237, 8396), RC = structure(c(2L, 
    2L, 2L, 2L, 2L, 1L, 1L, 2L, 2L, 1L), .Label = c("O", "S"), contrasts = structure(c(-0.5, 
    0.5), .Dim = 2:1, .Dimnames = list(c("O", "S"), "2-1")), class = "factor"), 
    Lexicalidad = structure(c(2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 
    2L, 2L), .Label = c("nopalabra", "palabra"), contrasts = structure(c(-0.5, 
    0.5), .Dim = 2:1, .Dimnames = list(c("nopalabra", "palabra"
    ), "2-1")), class = "factor")), row.names = c(NA, -10L), groups = structure(list(
    Part = structure(c(1L, 1L), .Label = c("1", "2", "3", "4", 
    "5", "6", "7", "8", "9", "10", "11", "12", "13", "14", "15", 
    "16", "17", "18", "20", "21", "22", "23", "24", "25", "26", 
    "27", "28", "29", "30", "31", "32", "33", "34", "35", "36", 
    "37", "38", "39", "40", "41", "42", "43", "44", "45", "46", 
    "47", "48", "49", "50", "51", "52", "53", "54", "55", "56", 
    "57", "58", "59", "60", "61", "62", "63", "64", "65", "66", 
    "67", "68", "69", "70", "71", "72", "73", "74", "75", "76", 
    "77", "78", "79", "80", "81", "82", "83", "84", "85", "86", 
    "87", "90", "91", "92", "93", "94", "95", "96", "97", "98", 
    "99", "100", "101", "102", "103", "104", "105", "106", "107", 
    "108", "109", "110", "111", "112", "113", "114", "115", "116", 
    "117", "118", "119", "120", "121", "122", "123", "124", "125", 
    "126", "127", "128", "129", "130", "131", "132", "133", "134", 
    "135", "136", "137", "138", "139", "140", "141", "142", "143", 
    "144", "145", "146", "147", "148", "149", "151"), class = "factor"), 
    Lexicalidad = structure(c(2L, 2L), .Label = c("nopalabra", 
    "palabra"), contrasts = structure(c(-0.5, 0.5), .Dim = 2:1, .Dimnames = list(
        c("nopalabra", "palabra"), "2-1")), class = "factor"), 
    RC = structure(1:2, .Label = c("O", "S"), contrasts = structure(c(-0.5, 
    0.5), .Dim = 2:1, .Dimnames = list(c("O", "S"), "2-1")), class = "factor"), 
    RTA = structure(c(1L, 1L), .Label = c("SN1", "SN2"), contrasts = structure(c(-0.5, 
    0.5), .Dim = 2:1, .Dimnames = list(c("SN1", "SN2"), "2-1")), class = "factor"), 
    .rows = structure(list(c(6L, 7L, 10L), c(1L, 2L, 3L, 4L, 
    5L, 8L, 9L)), ptype = integer(0), class = c("vctrs_list_of", 
    "vctrs_vctr", "list"))), row.names = c(NA, -2L), class = c("tbl_df", 
"tbl", "data.frame"), .drop = TRUE), class = c("grouped_df", 
"tbl_df", "tbl", "data.frame"))


data %>% 
  group_by(RC) %>% 
  count(RTA) %>% 
  mutate(prop = n/sum(n)) %>% 
  ggplot(aes(x = RC, y = prop)) +
  geom_col(aes(fill = RTA, color = RTA), position = "dodge") +
  scale_y_continuous(labels = scales::percent) +
  geom_text(aes(label = scales::percent(prop), y = prop, group = RTA),
            position = position_dodge(width = 0.9), vjust = 1.5)
  

标签: rbar-chartpercentageerrorbar

解决方案


推荐阅读