2013-03-21 156 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) 
相關問題