【发布时间】:2013-01-07 08:57:47
【问题描述】:
y 轴标题看起来太靠近轴文本。
ggplot(mpg, aes(cty, hwy)) + geom_point()
我尝试使用theme() 更改许多参数的值,但似乎没有任何帮助。
【问题讨论】:
y 轴标题看起来太靠近轴文本。
ggplot(mpg, aes(cty, hwy)) + geom_point()
我尝试使用theme() 更改许多参数的值,但似乎没有任何帮助。
【问题讨论】:
从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.x、axis.text.y 和title。
加法
为了在轴具有不同位置时设置轴标题的边距(例如,使用scale_x_...(position = "top"),您需要不同的主题设置 - 例如axis.title.x.top。参见https://github.com/tidyverse/ggplot2/issues/4343。
【讨论】:
facet_grid,而 Adam B 建议的答案可以(即使用 \n 换行)
margin = 参数不起作用吗?
theme_bw 试过了。抱歉,发布整个代码不可读/乱七八糟...
theme_bw(),那么theme_bw() 应该在theme() 函数之前使用,因为在预定义的主题中,轴标题的参数已经准备好了。
基于此论坛帖子: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 建议的边距参数对我不起作用。因此,我使用了一种不同的 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) 支持)。
【讨论】: