gpt4 book ai didi

r - 将 y 轴标题放在图形的左上角

转载 作者:行者123 更新时间:2023-12-04 18:42:33 25 4
gpt4 key购买 nike

我正在用 R 中的 ggplot2 绘制一个图,我希望 y 轴的标题出现在图的左上角。考虑以下默认行为的代码:

require(ggplot2)

xy = data.frame(x=1:10, y=10:1)

ggplot(data = xy) +
geom_point(aes(x = x, y = y)) +
ylab("very long label")

这会产生以下图表:

Original graph

我想移动和旋转文本“很长的标签”。我可以使用 theme() 来做这件事功能:
ggplot(data = xy) +
geom_point(aes(x = x, y = y)) +
ylab("very long label") +
theme(axis.title.y = element_text(angle = 0, vjust = 1.1, hjust = 10))

这给了我这个:

modified graph

您可以看到我的意思,但边距不正确——左边距太大,因为空间是为旋转标签保留的,而顶部边距对于文本来说太小了。

我怎么能告诉 ggplot 我想要那个位置的 y 轴标题没有旋转并让它为它保留适当的空间?

最佳答案

把它放在主情节标题中:

ggplot(data = xy) +
geom_point(aes(x = x, y = y)) +
ggtitle("very long label") +
theme(plot.title = element_text(hjust = 0))

如果您喜欢使用负值 hjust,您可以将它稍微向左推一点。值,但如果走得太远,标签将被剪掉。在这种情况下,您可以尝试使用 plot.margin :
ggplot(data = xy) +
geom_point(aes(x = x, y = y)) +
ggtitle("very long label") +
theme(plot.title = element_text(hjust = -0.3),
plot.margin = rep(grid::unit(0.75,"in"),4))

很明显,这使得在图表中添加实际标题变得困难。您始终可以使用以下内容手动注释:
grid.text("Actual Title",y = unit(0.95,"npc"))

或者,反之亦然,使用 grid.text对于 y 标签。

关于r - 将 y 轴标题放在图形的左上角,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22512115/

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