Как добавить панели ошибок для гистограммы в ggplot в R - PullRequest
0 голосов
/ 29 апреля 2019

Я недавно пытался добавить полосы ошибок к гистограмме, которую я создал в ggplot в R. Однако, когда я посмотрел geom_errorbar, оказалось, что единственный документированный способ сделать это - создать еще один фрейм данных, содержащий ymin.и ymax каждого бара, и построите график, используя это свойство stat = 'identity', которое кажется очень громоздким.

Например, этот пример показан на странице справки geom_errorbar:

df <- data.frame(
  trt = factor(c(1, 1, 2, 2)),
  resp = c(1, 5, 3, 4),
  group = factor(c(1, 2, 1, 2)),
  se = c(0.1, 0.3, 0.3, 0.2)
)
df2 <- df[c(1,3),]

# Define the top and bottom of the errorbars
limits <- aes(ymax = resp + se, ymin=resp - se)

p <- ggplot(df, aes(fill=group, y=resp, x=trt))
p + geom_bar(position="dodge", stat="identity")

# Because the bars and errorbars have different widths
# we need to specify how wide the objects we are dodging are
dodge <- position_dodge(width=0.9)
p + geom_bar(position=dodge) + geom_errorbar(limits, position=dodge, width=0.25)

Нет ли лучшего способа сделать это без необходимости использовать stat = 'identity' plotting?

1 Ответ

0 голосов
/ 29 апреля 2019

Существует гораздо более простой способ построения панелей ошибок с использованием geom_errobars, который по некоторым причинам не очень задокументирован. По сути, вам просто нужно использовать stat = 'summary' для объекта geom_errorbar.

ggplot(data=mtcars, aes(x=gear, y=hp)) + geom_bar(stat='summary') + geom_errorbar(stat='summary', width=.2)

Это верно, если вы хотите использовать только панель ошибок для описания стандартного отклонения с обеих сторон от полосы (вы можете использовать другую меру, например, доверительный интервал и т. Д.)

...