在barplot()上绘制正负值的水平图

时间:2015-11-10 11:40:32

标签: r graph bar-chart

我有30个列的数据框,第一个有正值,下一个有负,依此类推。我想制作一个水平条形图,成对地比较每个列(一个正面和一个负面)。

可重复数据:

x = 0:600
y = 0:-600

col1<- sample(x, 40)
col1
col2<- sample(y, 40)
col2

df = as.data.frame(rep(data.frame(col1, col2), 15))
df

final.data<-colMeans(df, na.rm=T)
final.data

当我尝试这个命令时:

barplot(final.data, 
    horiz=TRUE, 
    xlim=c(-500,500), 
    xlab="average time (seconds)", 
    axisnames=FALSE)

我得到类似的东西:

enter image description here

我的主要问题是:

  1. 如何使我想要比较的水平条彼此相邻而不是略微下降?
  2. 我无法找到答案的另一个相关问题:

    1. 如何在看到显着差异的治疗前添加*?

1 个答案:

答案 0 :(得分:3)

也许你应该一次只添加一个组:

dat <- as.vector(replicate(15, c(sample(-100:10, 1), sample(1:100, 1))))

barplot(dat[seq(1, 29, 2)], xlim = c(-100, 100), horiz = TRUE, col = "red")
barplot(dat[seq(2, 30, 2)], horiz = TRUE, add = TRUE, col = "blue")

enter image description here