【问题标题】:Generating a bar plot in R with error bars [duplicate]在R中生成带有误差线的条形图[重复]
【发布时间】:2019-04-19 14:14:24
【问题描述】:

我的数据集如下所示:

> print(dataplot)
          a         b         c          d         e          f         g          h         i
[1,] 0.9685 0.0150831 0.9253333 0.03018388 0.9856667 0.01330664 0.9268333 0.05894885 0.9686667
              j         k          l
[1,] 0.01478738 0.9313333 0.07123389

其中列a,c,e,g,i,k 是手段和列b,d,f,@98765432@,@98765432@,@9876543331 @,l 它们各自的标准差。

我想绘制一个包含三个组的分组barplot(),分别是:

1) 列ac

2) 列eg

3) 列ik

a,e,i 列可以有一种颜色,c,g,h 列可以有不同的颜色。我也想有误差线。

我一直在尝试使用以前的脚本,但找不到如何使条形图显示为分组并具有各自的标准偏差。

我正在学习 R,希望能得到一些帮助。任何意见表示赞赏!

【问题讨论】:

  • @jay.sf 我知道那个帖子的存在。正如我的问题的标题和描述中提到的那样,您引用的上一篇文章并未解释在分组条形图中添加误差线。

标签: r bar-chart


【解决方案1】:

编辑

根据评论中的要求更改了标签。

您可以稍微更改一下 data.frame 的结构,以获取可用于ggplot() 的形状的数据:

library(ggplot2)
dat <- data.frame(a=0.9685, b=0.0150831, c=0.9253333, d=0.03018388, e=0.9856667, f=0.01330664, g=0.9268333, h=0.05894885, i=0.9686667,j=0.01478738, k=0.9313333, l=0.07123389)
data <- data.frame(mean=unlist(dat[, 1:ncol(dat) %% 2 == 1]), sd=unlist(dat[, 1:ncol(dat) %% 2 == 0]))
data$x <- rownames(data)
data$category <- as.factor(sort(rep(1:3, 2)))
data$Method <- as.factor(rep(c('k-NN', 'Decision trees'), 3))
gg <- ggplot(aes(x=category, y=mean, fill=Method, group=Method), data=data)
gg <- gg + geom_bar(stat='identity', position = position_dodge(), width=.5)
gg <- gg + geom_errorbar(aes(ymin=mean-sd, ymax=mean+sd), position = position_dodge(width=.5), width=.2)
gg

【讨论】:

  • 感谢您的回答。我正在编辑标签。我想将split 更改为Method,将1 更改为k-NN,并将2 更改为Decision trees。有没有一种方法可以在不重新编写脚本的情况下添加它?
  • 当然,只需更改变量名称和相应的值。请看我的Edit,希望对您有所帮助!