2013-03-21 120 views
1

当我在R中绘制堆叠式条形图时,条形之间的间距相等,x轴值仅用作标签。我想根据x轴值将条放置得更近或更远。有人可以帮助我使用R获得这个阴谋吗?控制堆叠式条形图中条形之间的间距

编辑:

# data.frame newtest 
     A B C D 
100 0.2 0.3 0.1 0.4 
400 0.3 0.5 0.1 0.1 
500 0.1 0.3 0.4 0.2 
600 0.4 0.2 0.2 0.2 
1000 0.1 0.5 0.1 0.3 
1500 0.3 0.2 0.2 0.3 
1600 0.4 0.1 0.3 0.2 
1700 0.1 0.1 0.7 0.1 
2500 0.3 0.2 0.1 0.4 

# plot 
barplot(t(as.matrix(newtest)), col = c("cyan", "lightblue", "yellow", "green"), 
      legend = colnames(newtest), cex.main = 0.5, cex.axis = 0.5, 
      cex.lab = 0.5, lwd = 0.02) 

这里的情节: barplot

酒吧只是标注为每行的名字。但是我希望400,500,600的酒吧互相靠拢,空白空间代表700,800,900无空格,然后酒吧为1000,然后空白空间直到1500,酒吧1500,1600,1700

+0

您好!请通过看看[**如何使一个伟大的可重复的例子**],使您的文章可重现(http://stackoverflow.com/questions/5963269/how-to-make-a-great-r-reproducible-例如)为我们提供帮助。谢谢。 – Arun 2013-03-21 08:17:32

+1

谢谢阿伦。我添加了示例数据和我用于绘图的代码。我无法发布我得到的情节的图像。 – Ganesh 2013-03-21 09:01:16

+0

我编辑了你的文章,添加了情节并编辑了标签。这不是一个ggplot。 – Arun 2013-03-21 10:18:28

回答

2

鉴于在barplot x轴表示分类变量,我不认为有比你的数据引入额外的虚拟观察其他的解决方案:

extracolnames <- setdiff(seq(100,2500,by=100) ,rownames(newtest)) 
extracols <- replicate(length(extracolnames), rep(0,4)) 
colnames(extracols) <- extracolnames 
dat <- cbind(t(as.matrix(newtest)), extracols) 
dat <- dat[,order(as.numeric(colnames(dat)))] 
barplot(dat, col=c("cyan","lightblue","yellow","green"), legend=colnames(newtest), cex.main=0.5, cex.axis=0.5, cex.lab=0.5, lwd=0.02) 
相关问题