2016-01-08 60 views
3

我想在ggplot2圖表上使用一些很好的練習示例,但我堅持的一點是如何將x軸文本移近酒吧。這裏是我的意思是:把x軸文本放在ggplot2上的barplot bar上(覆蓋背景面板)

car.names <- rownames(mtcars)  
qplot(car.names[1:3],mtcars$wt[1:3],geom="bar",stat="identity") + geom_text(aes(y=mtcars$wt[1:3]),label=paste(mtcars$wt[1:3]),size=10,hjust=0.54,vjust=1.5,color="white") 

如果我使用此代碼,這是陰謀,我會得到:

enter image description here

太好了!我可以看到text.axis(Datsun 710等)與這個灰色背景對齊。但現在考慮下面的函數,隨着一些調整文字大小一起編輯了電網等:

science_theme = theme(
    panel.background=element_blank(), 
    axis.line=element_blank(), 
    text = element_text(size=25, family="Interstate",colour='grey'), 
    axis.text.x = element_text(hjust = 0.5,vjust=0.3, size=25), 
    axis.text.y = element_blank(), 
    axis.ticks = element_blank(), 
    panel.grid.major = element_blank(), 
    panel.grid.minor = element_blank()) 

現在我調用同一個函數與我的新主題:

qplot(car.names[1:3],mtcars$wt[1:3],geom="bar",stat="identity") + geom_text(aes(y=mtcars$wt[1:3]),label=paste(mtcars$wt[1:3]),size=10,hjust=0.54,vjust=1.5,color="white") + science_theme 

這是我所得到的未來:

enter image description here

漂亮。然而,問題是現在酒吧和標籤之間惱人的白色空間。我預計在設置element_blanks()時,情節會理解灰色區域不再存在,因此將其向上推。

我試過在axis.text對齊上使用vjust,但它不能移動到任何地方。 I also looked at this page哪些細節更多的每個元素,但無法讓它移動。

任何想法?只是爲了確保你理解我的問題:正確的情節將看起來像最後一個,除了x軸名稱(即Datsun 710等)將更接近條。 y軸相同。

+0

你用'scale_y_continuous'的'expand'論點玩?或者類似的東西。 –

+0

沒有意識到它,所以沒有。我會現在嘗試它,但如果你認爲這解決了自包含示例的問題,請將它作爲答案,以便我可以正確獎勵解決方案:) –

+0

那麼,因爲我升級了我的'ggplot2'版本,您的示例doesn'爲我工作。 –

回答

5

可以使用expand說法scale_y_discrete

qplot(car.names[1:3],mtcars$wt[1:3],geom="bar",stat="identity") + 
    geom_text(aes(y=mtcars$wt[1:3]),label=paste(mtcars$wt[1:3]),size=10,hjust=0.54,vjust=1.5,color="white") + 
    science_theme + 
    scale_y_discrete(expand=c(-0.5,0)) 

enter image description here