当前位置:  开发笔记 > 编程语言 > 正文

将x轴文本放在ggplot2上的条形图条上(覆盖背景面板)

如何解决《将x轴文本放在ggplot2上的条形图条上(覆盖背景面板)》经验,为你挑选了1个好方法。

我正在尝试使用我的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")

如果我使用此代码,这是我将得到的情节:

在此输入图像描述

大!我可以看到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

这就是我接下来要做的事情:

在此输入图像描述

漂亮.然而问题是现在条和标签之间的恼人的白色空间.我期望在设置element_blanks()时,情节会理解灰色区域不再存在,因此将其向上推.

我试图在axis.text对齐上使用vjust但它不会移动到任何地方.我还查看了这个页面,其中详细介绍了每个元素,但无法让它发生变化.

有任何想法吗?只是为了确保你理解我的问题:正确的情节将看起来像最后一个,除了x轴名称(即Datsun 710等)将更接近条形.y轴相同.



1> 小智..:

您可以使用以下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))

在此输入图像描述

推荐阅读
跟我搞对象吧
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有