【问题标题】:Increase distance between text and title on the y-axis在 y 轴上增加文本和标题之间的距离
【发布时间】:2013-01-07 08:57:47
【问题描述】:

y 轴标题看起来太靠近轴文本。

ggplot(mpg, aes(cty, hwy)) + geom_point()

我尝试使用theme() 更改许多参数的值,但似乎没有任何帮助。

【问题讨论】:

    标签: r layout plot ggplot2


    【解决方案1】:

    ggplot2 2.0.0,您可以使用element_text()margin = 参数来更改轴标题和数字之间的距离。在元素的top、right、bottom 和left 侧设置margin 的值。

    ggplot(mpg, aes(cty, hwy)) + geom_point()+
      theme(axis.title.y = element_text(margin = margin(t = 0, r = 20, b = 0, l = 0)))
    

    margin 也可以用于其他element_text 元素(参见?theme),例如axis.text.xaxis.text.ytitle

    加法

    为了在轴具有不同位置时设置轴标题的边距(例如,使用scale_x_...(position = "top"),您需要不同的主题设置 - 例如axis.title.x.top。参见https://github.com/tidyverse/ggplot2/issues/4343

    【讨论】:

    • 此方法似乎不适用于facet_grid,而 Adam B 建议的答案可以(即使用 \n 换行)
    • @Anonymous 你能举个例子说明这个margin = 参数不起作用吗?
    • 我用theme_bw 试过了。抱歉,发布整个代码不可读/乱七八糟...
    • @Anonymous 如果你使用theme_bw(),那么theme_bw() 应该在theme() 函数之前使用,因为在预定义的主题中,轴标题的参数已经准备好了。
    • 感谢您的澄清!
    【解决方案2】:

    基于此论坛帖子:https://groups.google.com/forum/#!topic/ggplot2/mK9DR3dKIBU

    听起来最简单的方法是在 x 轴之前和 y 轴标签之后添加换行符 (\n)。似乎比上面发布的解决方案容易得多(虽然更笨)。

    ggplot(mpg, aes(cty, hwy)) + 
        geom_point() + 
        xlab("\nYour_x_Label") + ylab("Your_y_Label\n")
    

    希望有帮助!

    【讨论】:

    • 我通常使用这种方法,它更快,并且不需要向 ggplot 添加另一个选项,除非我需要一些特定的调整。
    【解决方案3】:

    由于某种原因,Didzis Elferts 建议的边距参数对我不起作用。因此,我使用了一种不同的 hack,它比添加空行更灵活,但需要放弃轴刻度。

    myplot + theme(axis.ticks.x = element_blank(), axis.ticks.length.x = unit(3.25, "cm")
    

    我想,可以使用geom_segment 手动添加刻度线。另一种可能性可能是[ggalt::annotation_ticks][1],但我也懒得尝试(注意当前版本的 CRAN (0.4) 上的 ggalt 不支持此功能,github 上的版本 (0.6) 支持)。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-09-23
      • 2021-11-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多