我的数据集如下:
> 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
,h
,j
,l
各自的标准偏差。
我想绘制一个分为三组的barplot()
分组,即:
1)列a
和c
2)列e
和g
3)列i
和k
列a
,e
,i
可以有一种颜色,列c
,g
,h
可以有不同的颜色。我也希望有错误栏。
我一直在尝试使用以前的脚本,但是我找不到如何使条形图按组显示并具有各自的标准偏差。
我正在学习R,所以希望能得到一些帮助。任何输入表示赞赏!
答案 0 :(得分:0)
修改
根据评论中的要求更改了标签。
您可以稍微更改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