Добавление полос погрешностей к линейному графику с помощью ggplot2 в R

У меня есть три значения y, соответствующие трем значениям x. Я просто хочу иметь линейный график между этими тремя точками

g <- c("1","2","3")
i <- c(181.83,178.74,152.02)
df <- data.frame(g,i)
p <- ggplot(df, aes(x=g, y=i)) + geom_line() + geom_point()

Используя это, я получаю следующее:

введите здесь описание изображения

Во-первых, почему мой geom_line() не работает? После этого у меня есть:

se <- c(22.95,22.72,19.2)
p + geom_errorbar(aes(ymin=se,ymax=se))

И что я получаю:

введите здесь описание изображения

Почему мои полосы погрешностей не сосредоточены вокруг точек данных? Почему они валяются на дне? Почему они кажутся горизонтальными? Что я могу сделать, чтобы исправить это?


person YarkınErgin    schedule 23.03.2019    source источник
comment
Вы можете решить первую проблему, добавив group = 1 вот так ggplot(df, aes(x = g, y = i, group = 1)) + geom_line() + geom_point()   -  person kath    schedule 23.03.2019
comment
Большое спасибо! Должен ли я отредактировать эту часть вопроса, потому что он решен?   -  person YarkınErgin    schedule 23.03.2019


Ответы (1)


Хорошо, я понял: аргументы ymin и ymax буквально говорят, где начинается и заканчивается строка ошибки, поэтому вы не можете просто указать реальное стандартное значение ошибки и ожидать, что ggplot2 выяснит, где будет центр этой строки ошибки. Таким образом, вы должны указать его как:

geom_errobar(aes(ymin = i - se, ymax = i + se))

И, наконец, вы получаете:

введите здесь описание изображения

Надеюсь, это поможет и другим.

person YarkınErgin    schedule 23.03.2019