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

标签 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 轴也一样。

最佳答案

您可以使用 scale_y_discreteexpand 参数:

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

关于r - 将 x 轴文本更靠近 ggplot2 上的条形图条(覆盖背景面板),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34668913/

相关文章:

r - 如何在 R S3 中 dispatch 猫?

r - 使用 shinyapps.io 检测语言环境时出错

r - 用于将 R 图添加到演示文稿的官员包函数

R粘贴属于相同id的数据框行

r - 如何合并两个表,然后使用 data.table 一步制表计数

r - 图例不会显示

r - ggplot2 geom_pointrange 中各个方面的不同颜色值,带有显着性注释

r - ggplot2 scale_color_manual 显示图例中的所有值

r - 在ggplot中使用geom_smooth显示标准偏差

r - 维恩图(4套)带R : problem with percentages