Прежде всего: очень печально и удивительно, что R не может рисовать строки ошибок «из коробки».
Вот мое любимое решение, преимущество в том, что вам не нужно любые дополнительные пакеты . Трюк состоит в том, чтобы нарисовать стрелки (!), Но с небольшими горизонтальными полосками вместо стрелок (!!!). Это не так прямолинейная идея взята из R Wiki Tips и воспроизводится здесь как отработанный пример.
Предположим, что у вас есть вектор «средних значений» avg
и еще один вектор «стандартных отклонений» sdev
, они имеют одинаковую длину n
. Давайте сделаем абсцисс только количество этих «измерений», поэтому x <- 1:n
. С их помощью приходят команды построения:
plot(x, avg,
ylim=range(c(avg-sdev, avg+sdev)),
pch=19, xlab="Measurements", ylab="Mean +/- SD",
main="Scatter plot with std.dev error bars"
)
# hack: we draw arrows but with very special "arrowheads"
arrows(x, avg-sdev, x, avg+sdev, length=0.05, angle=90, code=3)
Результат выглядит следующим образом:
[/g2]
В arrows(...)
length=0.05
- размер «стрелки» в дюймах, angle=90
указывает, что «стрелка» перпендикулярна оси стрелки, а особенно интуитивный параметр code=3
указывает, что мы хотим нарисовать наконечник стрелки на обоих концах стрелки.
Для горизонтальных шкал ошибок необходимы следующие изменения, предполагая, что теперь вектор sdev
содержит ошибки в значениях x
, а значения y
- это ординаты :
plot(x, y,
xlim=range(c(x-sdev, x+sdev)),
pch=19,...)
# horizontal error bars
arrows(x-sdev, y, x+sdev, y, length=0.05, angle=90, code=3)