gpt4 book ai didi

r - 在ggplot2中增加axis.title和axis.text之间的空间(版本> = 0.9.0)

转载 作者:行者123 更新时间:2023-12-03 14:11:30 26 4
gpt4 key购买 nike

我目前正在使用来自github的ggplot2最新版本。

在版本0.8.9中,我可以执行以下操作来增加axis.title和axis.text之间的空间:

之前:

ggplot(diamonds, aes(clarity)) + geom_bar() + opts(
axis.title.x = theme_text(vjust=-1.1)
)




固定:

ggplot(diamonds, aes(clarity)) + geom_bar() + opts(
axis.title.x = theme_text(vjust=-1.1),
plot.margin = unit(c(1, 1, 0.8, 0.5), "lines")
)




并且axis.title变得完全可见。

在ggplot2的最新github版本中plot.margin对axis.title没有影响:

ggplot(diamonds, aes(clarity)) + geom_bar() + opts(
axis.title.x = theme_text(vjust=-0.2),
plot.margin = unit(c(1, 1, 2, 0.5), "lines"))




(请注意增加的底部边距-我无法在最新的开发版本中使用plot.background)

似乎0.8.9允许axis.title在plot.margin创建的额外空间上移动,但是在最新的开发版本中不允许这样做。

在最新的开发版本中,是否有新的方法可以完成此任务(或快速修复)?

任何帮助表示赞赏。

最佳答案

如何正确做

marginelement_text属性用于axis.title中的theme
由于我将y标题旋转为水平方向(使其更易于阅读),因此我对x和y使用不同的边距。

library(ggplot2)
library(gridExtra)

ggplot(diamonds, aes(clarity)) +
geom_bar() +
theme(
axis.title.x = element_text(margin = unit(c(3, 0, 0, 0), "mm")),
axis.title.y = element_text(margin = unit(c(0, 3, 0, 0), "mm"), angle = 0)
)


Demo of axis title margin

老黑客

ggplot不再支持 optstheme_text。因此,我快速而又肮脏的解决方案是仅在标题的开头或结尾添加换行符。这可能很难看,但是只需很少的工作就可以完成工作。

ggplot(diamonds, aes(clarity)) +
geom_bar() +
xlab("\nClarity") + ylab("Count\n")

关于r - 在ggplot2中增加axis.title和axis.text之间的空间(版本> = 0.9.0),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9131916/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com