带箭头的酒吧

时间:2013-11-06 21:15:59

标签: r plot

我想创建一个条形图并添加置信区间。我正在使用'boxplot + arrows'。但是,boxplot和箭头之间存在错误对齐。

我的数据集

$ df <- read.csv("database.csv", header=TRUE, sep=",")
$ df

# df is 'data frame'
# Gives mean and confidence interval (ci)

                   method      mean          ci
4                       A 0.3873552 0.002879887
6                       B 0.3873552 0.002879887
11                      C 0.3873552 0.002879887
12                      D 0.3873552 0.002879887
10                      E 0.3757940 0.005424378
1                       F 0.3715910 0.001226391
3                       G 0.3642126 0.010307811
5                       H 0.3615370 0.001347359
9                       I 0.3589878 0.002041493
13                      J 0.3585191 0.006083269
2                       K 0.3570351 0.002684985
7                       L 0.3497304 0.015632625
8                       M 0.2994054 0.001846430

R代码:

result <- df

barplot(result$modularity, names=result$method, space = 0.3,  main = "Title", las=0.8, cex.names=0.8, ylab="y label", ylim = c(0.2,0.5),yaxp=c(0.2,0.5,10), xpd=F)

names = result$method
x = 1:13*2-1
CI.up = as.numeric(result$modularity)+as.numeric(result$ci)
CI.dn = as.numeric(result$modularity)-as.numeric(result$ci)
arrows(x,CI.dn,x,CI.up,code=3,length=0.06,angle=90,col='black')

结果:boxplot和箭头之间存在错误对齐。有谁知道错误吗?

enter image description here

我想要这个结果:

enter image description here

结果:boxplot和箭头之间存在错误对齐。有谁知道错误吗?

1 个答案:

答案 0 :(得分:4)

barplot并不默认在整数x值上绘制条形图(即<。em>不在1,2,...上)。您可以通过设置x <- barplot()来获取条形图中的x值。

尝试以下方法:

x <- barplot(result$modularity, ...)
arrows(x,CI.dn,x,CI.up,code=3,length=0.06,angle=90,col='black')