Построение горизонтальных полос ошибок - это предполагаемое поведение для функции errbar()
, когда аргумент x
является фактором или символьной переменной, а не числовым.Когда вы говорите, что пропущенные значения x
нарушают ваш график, я понимаю, что вы подразумеваете разрыв линий, соединяющих точки.Чтобы построить график ошибок без прерывания линий, я бы просто удалил наблюдения с пропущенными значениями x
:
require(Hmisc)
## Your example data
set.seed(1)
x <- 1:10
y <- x + rnorm(10)
delta <- runif(10)
## Make some data vanish
x[c(5,6)] <- NA
## Create an index for non-missing observations in `x`
i <- which(!is.na(x))
errbar(x[i], y[i], y[i] + delta[i], y[i] - delta[i], type = "b")
Редактировать В соответствии с вашим комментарием ниже, если имена платформ просто предназначены дляБудь ваши метки для отметок по оси X, тогда как насчет следующего?
require(Hmisc)
## Your example data
set.seed(1)
# `x` should not contain missing values, and is not your platenames vector
x <- 1:10
y <- x + rnorm(10)
delta <- runif(10)
# xticks represents your platenames vector with missing values
xticks <- c(1, 2, 3, 4, NA, NA, 7, 8, 9, 10)
errbar(x, y, y + delta, y - delta, type = "b")
axis(1, at = xticks, labels = xticks)
Однако, меня смущает, почему вы будете иметь наблюдения с отсутствующими отметками по оси X.Как подсказывает Андри, возможно, вы сможете уточнить, почему некоторые имена плат отсутствуют, и действительно ли они должны быть вашими значениями x, или это просто метки.Если они просто надписи, возможно, вы захотите добавить надписи к полям с помощью mtext()
:
errbar(x, y, y + delta, y - delta, type = "b")
mtext(text = xticks, side = 3, line = 2, at = xticks)
Настройка side
и line
на ?mtext
для перемещения надписей.