增加y轴上文本和标题之间的距离

时间:2013-01-23 18:52:56

标签: r layout plot ggplot2

y轴标题显得太靠近轴文字。

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

ggplot output

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

3 个答案:

答案 0 :(得分:145)

ggplot2 2.0.0,您可以使用margin =的{​​{1}}参数来更改轴标题和数字之间的距离。设置元素的element_text()操作margint ight,r ottom和b eft侧的l值。

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。< / p>

答案 1 :(得分:73)

基于此论坛帖子: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")

希望有所帮助!

答案 2 :(得分:0)

出于某种原因,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) 上的支持)。