Ern*_*t A 99 layout plot r ggplot2
y轴标题显得太靠近轴文本.
ggplot(mpg, aes(cty, hwy)) + geom_point()
Run Code Online (Sandbox Code Playgroud)

我试过改变许多参数的值,theme()但似乎没有任何帮助.
Did*_*rts 150
从ggplot2 2.0.0您可以使用margin =的参数element_text()来改变轴标题和数字之间的距离.设定的值margin上t运算,r飞行,bottom,和l该元件的EFT侧.
ggplot(mpg, aes(cty, hwy)) + geom_point()+
theme(axis.title.y = element_text(margin = margin(t = 0, r = 20, b = 0, l = 0)))
Run Code Online (Sandbox Code Playgroud)
margin也可以用于其它element_text元素(参见?theme),如axis.text.x,axis.text.y和title.
Ada*_*m B 82
基于此论坛帖子: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")
Run Code Online (Sandbox Code Playgroud)
希望有所帮助!
Oma*_*sow 10
一种比添加边距提供更细粒度控制\n但又不那么麻烦的解决方案是vjust在theme函数中使用。
为了调整 y 轴或 x 轴上的位置以增加空间,这通常需要使用(y 轴)的正值或(x 轴)vjust的负值,如 中所示。请参阅下面的完整示例。vjusttheme(axis.title.y = element_text(vjust = 2))
# load patchwork to show plots side-by-side
library(patchwork)
library(ggplot2)
# Plot A: just for comparison, moving titles *inward*
p1 <- ggplot(mpg, aes(cty, hwy)) +
geom_point() +
theme_gray() +
theme(
axis.title.y = element_text(vjust = -3),
axis.title.x = element_text(vjust = +3)
)
# Plot B: what we want, moving titles *outward*
p2 <- ggplot(mpg, aes(cty, hwy)) +
geom_point() +
theme_gray() +
theme(
axis.title.y = element_text(vjust = +3),
axis.title.x = element_text(vjust = -0.75)
)
# show plots side-by-side with patchwork package
p1 + p2 +
plot_annotation(tag_levels = "A")
Run Code Online (Sandbox Code Playgroud)