2013-06-12 106 views
2

有沒有方法可以將facet的ylim增加一定的百分比,這樣我的標籤就可以很好地適應了嗎? 目前,非常小的酒吧上面會有一半的標籤被切掉。當我使用hjust時,我在大條的頂部有同樣的問題。ggplot堆疊面中的隱藏標籤

enter image description here

這裏是我到目前爲止的代碼:

ggplot(test, aes(x=YEAR, y=(value), fill=variable)) + 
    labs(title="Test", x=NULL, y="Total", fill=NULL) + 
    geom_bar(stat="identity"), position="stack") + 
    facet_grid(variable ~., scales="free") + 
    theme(legend.position = "none") + 
    geom_text(aes(x=YEAR, y=(value), label=value), size=3) 

回答

1

您可以使用expandscale_y_continuous在頂部和底部添加一些空間:

例如

ggplot(test, aes(x=YEAR, y=(value), fill=variable)) + 
    labs(title="Test", x=NULL, y="Total", fill=NULL) + 
    geom_bar(stat="identity"), position="stack") + 
    facet_grid(variable ~., scales="free") + 
    theme(legend.position = "none") + 
    geom_text(aes(x=YEAR, y=(value), label=value), size=3)+ 
    scale_y_continuous(expand = c(0.05 , 0.05)) 

這會在y尺度的頂部和底部添加少量空間。使其更大以獲得更多空間,並使0精確地修整數據範圍內的軸。

對於dscrete擴展它在很多的工作方式相同:

scale_y_discrete(expand = c(0.05 , 0.05)) 

一個極端的例子(因爲我沒有訪問您的數據):

mm <- ddply(mtcars, "cyl", summarise, mmpg = mean(mpg)) 
ggplot(mm, aes(x = factor(cyl), y = mmpg , fill = factor(cyl))) + 
    geom_bar(stat = "identity") + 
    geom_text(aes(label=c("RED","GREEN","BLUE")), size = 15)+ 
    scale_y_continuous(expand = c(0.5,0.5)) 

enter image description here

+0

那成功了!謝謝你太多了。現在我只需要弄清楚爲什麼每個第二個刻度標記都沒有標記在x軸上。 –

+0

@JoanneDemmler沒問題。答案也在於scale參數(檢查中斷和標籤參數) –