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)

这是情节: 条形图

条形图仅根据行名称进行标记。但我希望 400,500,600 的条彼此更接近,空白表示 700,800,900 没有块,然后是 1000 的条,然后是 1500 之前的空白,1500、1600、1700等的条。

4

1 回答 1

2

鉴于 a 中的 x 轴barplot代表一个分类变量,我认为除了在您的数据中引入额外的虚拟观察之外没有其他解决方案:

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)
于 2013-03-21T09:22:09.947 回答