2016-07-02 40 views
0

假設我生成5組隨機數據,並希望使用箱形圖將它們可視化並將其保存到文件「boxplots.png」。使用代碼R:增加多個箱形圖之間的空間,以避免省略x軸標籤

png("boxplots.png") 
    data <- matrix(rnorm(25),5,5) 
    boxplot(data, names = c("Name1","Name2","Name3","Name4","Name5")) 
    dev.off() 

有根據需要在「boxplots.png」創建5個箱圖,但是用於第二(「名稱2」),並省略了箱線圖的第四(「NAME4」)的名稱。即使改變我的png視圖窗口也沒有區別。我怎樣才能避免這種行爲?

謝謝!

+1

增加您的繪圖/圖形窗口的寬度或減小標籤的大小 – user20650

+0

感謝您的回答 - 它使我意識到有更多信息需要描述我的問題,請參閱我的編輯。 – BJPrim

+1

'png'有一個寬度參數,您可以使用它來使繪圖更寬。你也可以用'las'參數來旋轉標籤。 'boxwex','cex.axis'等。試試看幾種方法適合你 – user20650

回答

1

您提供的代碼在我的設置中不會產生重疊,但是這一點相對沒有意義:您希望能夠在單詞之間留出更多空間。 一(蠻力-ISH)的方式來解決的症狀是交替把他們放在單獨的行:

set.seed(42) 
data <- matrix(rnorm(25),5,5) 
nms <- c("Name1","Name2","Name3","Name4","Name5") 
oddnums <- which(seq_along(nms) %% 2 == 0) 
evennums <- which(seq_along(nms) %% 2 == 1) 

(我們有了一個更好的方式來做到這一點,但它的作品)

從這裏:

png("boxplot.png", height = 240) 
boxplot(data, names = FALSE) 
mtext(nms[oddnums], side = 1, line = 2, at = oddnums) 
mtext(nms[evennums], side = 1, line = 1, at = evennums) 
dev.off() 

enter image description here

(採用png在這裏並不重要,我只是用它的,因爲ÿ我們的編輯。)

+0

謝謝你的建議 - 這是一個很好的/簡單的解決方案,我會牢記!只是爲了完成:user20650使用寬度參數的建議碰巧提供了一個很好的解決方案,其中每個標籤都是「在一行中」,但兩個盒子之間的空間增加了。 – BJPrim