gpt4 book ai didi

r - 使用相对于另一个元素的动态位置/位置向 ggplot2 图中添加注释

转载 作者:行者123 更新时间:2023-12-02 02:58:56 26 4
gpt4 key购买 nike

我正在尝试将注释(标签)添加到 ggplot2 绘图(使用 R ),其位置相对于另一个元素,即条形图中的条形上方。

我正在尝试将其作为包的一部分来执行此操作,并且(因此)以下示例有点做作,但我希望它能够演示这一挑战。

这是我首先尝试的方法,其中我将标签定位在 y 变量值加上(因此标签位于条形图上方)y 变量值的额外 5%。


library(ggplot2)

d <- data.frame(x = c("var1", "var2"), y = c(.2, 4))

ggplot(d, aes(x = x, y = y)) +
geom_col() +
annotate("text", x = d$x, y = d$y + (.05 * d$y), label = "hi!")

接近,但还没有完全实现。如果我将其设置为远大于 5%,则较大 y 值的条形图上的标签将变得离条形图太远,而如果将其设置为远小于 5%,则标签会变得太靠近(并与)酒吧。

我尝试取 y 值的平方根:

ggplot(d, aes(x = x, y = y)) +
geom_col() +
annotate("text", x = d$x, y = d$y + sqrt(.05 * d$y), label = "hi!")

这或多或少有效,除非在极端情况下失败(标签变得非常远或靠近栏的顶部),所以我想知道是否有更通用的方法来添加标签(或另一个 ggplot2注释)以更动态的方式相对于另一个元素的位置。

最佳答案

您可以尝试将 vjustgeom_text() 一起使用:

ggplot(d, aes(x = x, y = y)) +
geom_col() + geom_text(aes( label = "hi!"), vjust = -0.5)

即使在极端情况下也应该能很好地工作:

d <- data.frame(x = c("var1", "var2"), y = c(.2, 100))

enter image description here

关于r - 使用相对于另一个元素的动态位置/位置向 ggplot2 图中添加注释,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46985553/

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