y 轴标题与轴文本过于接近。
ggplot(mpg, aes(cty, hwy)) + geom_point()
我尝试过更改许多参数的值,theme()
但似乎没有任何帮助。
从ggplot2 2.0.0
您可以使用margin =
参数element_text()
来更改轴标题和数字之间的距离。设置元素的margin
on t
op、r
ight、b
ottom 和 eftl
侧的值。
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
.
添加
为了在轴具有不同位置时设置轴标题的边距(例如,使用scale_x_...(position = "top")
,您将需要不同的主题设置 - 例如axis.title.x.top
。请参阅https://github.com/tidyverse/ggplot2/issues/4343。
基于此论坛帖子: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")
希望有帮助!
出于某种原因,Didzis Elferts 建议的保证金论点对我不起作用。因此,我使用了一种不同的技巧,它比添加空行更灵活,但需要放弃轴刻度。
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)上的那个)。