y轴标题显得太靠近轴文字。
ggplot(mpg, aes(cty, hwy)) + geom_point()
我尝试用theme()
更改许多参数的值,但似乎没有任何帮助。
答案 0 :(得分:145)
从ggplot2 2.0.0
,您可以使用margin =
的{{1}}参数来更改轴标题和数字之间的距离。设置元素的element_text()
操作margin
,t
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.x
,axis.text.y
和title
。< / 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) 上的支持)。