将x轴文本更靠近ggplot2上的条形图条(覆盖背景面板)

时间:2016-01-08 03:11:02

标签: r ggplot2

我正在尝试使用我的ggplot2图表上建议的一些好的练习示例,但我坚持的一件事是如何将x轴文本移动到更靠近条形的位置。这就是我的意思:

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轴相同。

1 个答案:

答案 0 :(得分:5)

您可以使用expand的{​​{1}}参数:

scale_y_discrete

enter image description here