2012-08-05 114 views
3

如何將標籤居中在x軸上以與條形符合?另外,如何將x軸標籤進一步向下放置,使其不會被x軸標籤遮擋?謝謝!在條形圖中居中條形標籤r

par(mar= c(15,4,4,2) + 0.1) 
barplot(58:1,xaxt="n",xlab="",ylab="Frequency", col=gray(5:0/5)) 
axis(1, labels=FALSE) 
text(1:58, par("usr")[3] - 0.25, srt = 90, adj = 1, 
labels = rep("Long Species Name",58), xpd = TRUE) 
mtext(1, text = "Species", line=6) 

enter image description here

回答

10

退房(通過讀取?barplot)的barplot()返回值。在那裏,我們發現這些條的中點被函數作爲一個向量返回。因此,分配返回的對象(這裏是對象bar)很簡單,然後在axis()的調用中使用它來定位刻度標記。

axis()電話,注意,我們同時指定labels參數at說法,與at被設置爲點吧中旬存儲在barlas = 2用於相對於軸旋轉標籤,並使用cex.axis = 0.6來減小標籤尺寸。

您的問題的第二部分由title()line論點處理。首先請注意,當您設置參數mar時,您將邊距尺寸設置爲「線條」,因此邊1(底部)的邊距爲15線。 title()中的參數line指定要繪製軸標籤的邊界線中的哪一個。

與修改例子中,我們完全把這個:

op <- par(mar= c(15,4,4,2) + 0.1) 
bar <- barplot(58:1, xaxt="n", xlab="", ylab="Frequency", col=gray(5:0/5)) 
axis(1, labels = paste("Long Species Name", 1:58), at = bar, 
    las = 2, cex.axis = 0.6) 
title(xlab = "Species", line=11) 
par(op) 

主要生產:

barplot produced using example code

+1

謝謝你的詳盡的解釋很清晰。再次感謝! – Elizabeth 2012-08-05 10:57:27