2017-07-14 66 views
-1

我試圖增加在此barplot y軸的標籤的間距:ggplot2:如何修復分類變量的「壓扁」y軸?

library(data.table)  
ggplot(data, aes(y=values, x=categories)) + 
      geom_bar(stats="identity") +coord_flip() 

enter image description here

當然,問題是,有1500〜y軸分類標籤。目前,這些數據如此緊張,無法看到數據的任何趨勢。

如何增加這些y軸標籤之間的間距?我可以垂直放大嗎?

當然人們可以減小文本大小或減小條的寬度,但這隻適用於一個點......

我試圖與?discrete_scale以下解決方案:

ggplot(data, aes(y=values, x=categories)) 
      +geom_bar(stats="identity") +coord_flip() + scale_x_discrete(expand = c(0,0.01)) 

然而,擺弄expand似乎並沒有真正在這些標籤之間創建空間。

回答

3

這裏沒有真正的技巧答案。如果你有一個8英寸高的圖像和1500行文本,文本要麼會重疊或很小。無論哪種方式,它將不可讀。一種選擇是關閉y標籤。 theme(axis.ticks.y = element_blank(), axis.text.y = element_blank())。請注意,您可能需要將其更改爲axis.ticks.xaxis.text.x,具體取決於coord_flip。另一個選擇是對您的數據集進行採樣。而不是繪製所有內容,只需繪製一個隨機選擇的100行。 ggplot(data[sample(dim(data)[1], 100)], aes(...

如果你真的想要每一個標籤和每一行數據,第三個選擇就是製作一個非常高的圖像。

pdf(file = "image.pdf", width = 8, height = 120) 
g <- ggplot(data, aes(y = values, x = categories)) + 
    geom_bar(stats="identity") + 
    coord_flip() 
print(g) 
dev.off() 
+0

我明白了。我想唯一的方法就是增加劇情的大小。謝謝澄清!我很感激幫助。 – ShanZhengYang