r - 如何绘制带有水平误差条(带有错误标记的条形图)的图表?

标签 r plot lattice

我想将均值和标准误绘制为水平条形图,并且希望对均值进行排序。

我已经找到了使用晶格绘制水平排序的条形图的方法,但是我不知道如何添加错误标记。以下是我的数据和我想到的R代码。

data <- structure(c(0.67, 0.67, 0.76, 0.66, 0.71, 0.6, 0.52, 0.6, 0.71, 0.76, 
0.76, 0.71, 0.6, 0.61, 0.9, 0.5, 0.58, 0.84, 0.68, 0.88,
0.89, 0.96, 1, 0.95, 1, 1, 0.98, 0.78, 0.98, 1, 
1, 0.99, 1, 1, 0.95, 0.92, 1, 0.91, 1, 0.87, 
0.91, 0.72, 0.73, 0.55, 0.82, 0.87, 0.64, 0.75, 0.75, 1, 
0.81, 0.79, 1, 0.74, 0.57, 0.84, 1, 0.95, 0.78, 0.95), .Dim = c(20L, 3L), .Dimnames = list(
    c("1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11", 
    "12", "13", "14", "15", "16", "17", "18", "19", "20"), c("A", 
    "B", "C")))

means <- apply(data, 2, mean)

errors <- apply(data, 2, sd)

plot.data <- data.frame(colnames(data), means, errors)

colnames(plot.data) <- c("var", "mean", "error")

library("lattice")
plot.new()

barchart(reorder(var, mean) ~ mean, plot.data, xlim = c(0, 1))

有什么方法可以向该图表添加错误标记?如果没有,关于如何在R中绘制所需图表的任何建议?

先感谢您!

最佳答案

请参阅R-Help:Adding error bars to lattice plots

prepanel.ci <- function(x, y, lx, ux, subscripts, ...) {
    x <- as.numeric(x)
    lx <- as.numeric(lx[subscripts])
    ux <- as.numeric(ux[subscripts])
    list(xlim = range(0, x, ux, lx, finite = TRUE))
}


panel.ci <- function(x, y, lx, ux, subscripts, ...) {
    x <- as.numeric(x)
    y <- as.numeric(y)
    lx <- as.numeric(lx[subscripts])
    ux <- as.numeric(ux[subscripts])
    panel.barchart(x, y, ...)
    panel.arrows(lx, y, ux, y, col = 'black',
                 length = 0.25, unit = "native",
                 angle = 90, code = 3)
}

p <- barchart(reorder(var, mean) ~ mean, data=plot.data,
              lx=plot.data$mean-plot.data$error,
              ux=plot.data$mean+plot.data$error,
              panel=panel.ci,
              prepanel=prepanel.ci)
print(p)

lattice barchart with error bar

关于r - 如何绘制带有水平误差条(带有错误标记的条形图)的图表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2381618/

相关文章:

r - 如何按两个条件进行分组并计算所有行是否满足另一个条件

r - data.table 中的 `unstack()` 相当于什么?

python - 如何在不添加 "ticks"的情况下从下到上移动标签

r - 如何让ggplot ecdf以填充背景进行绘图

r - 如何使用 R 格子 xyplot 根据数值阈值对点进行着色

r - 在 `r` 的 `caret` 包中训练测试拆分

unit-testing - 在 R 中测试统计函数的指南?

python - 多索引数据的堆积图

r - 如何计算网格轴限制?

R格子条形图: specify colour of legend?