gpt4 book ai didi

r - 带有 geom_point 和 geom_text 的 ggplot 图例问题

转载 作者:行者123 更新时间:2023-12-03 14:33:01 27 4
gpt4 key购买 nike

我正在尝试使用 geom_point来说明我的数据计数。我还想用 geom_text 注释我图中的一些点.当我将调用添加到 geom_text 时,似乎它正在图例中的点下方绘制一些东西。我试过颠倒层的顺序无济于事。我无法理解它为什么这样做。有没有人见过这个?

set.seed(42)
df <- data.frame(x = 1:10
, y = 1:10
, label = sample(LETTERS,10, replace = TRUE)
, count = sample(1:300, 10, replace = FALSE)
)

p <- ggplot(data = df, aes(x = x, y = y, size = count)) + geom_point()
p + geom_text(aes(label = label, size = 150, vjust = 2))

alt text

最佳答案

这一直发生在我身上。诀窍是知道 aes()将数据映射到美学。如果没有要映射的数据(例如,如果您确定了一个值),则没有理由使用 aes() .我相信只有里面的东西aes()会出现在你的传说中。

此外,当您在 ggplot(aes()) 内指定映射时,这些映射适用于每个后续层。这对您的 x 和 y 都有好处,因为 geom_pointgeom_text使用它们。这对 size = count 不利,因为这仅适用于点。

所以这是我防止这种事情的两条规则:

  • 仅将基于数据的映射放在 aes() 内.如果参数采用单个预先确定的值,则将其传递给图层 外面aes() .
  • map 数据仅适用于将使用它的那些层 .推论:只有 ggplot(aes()) 内的 map 数据如果您确信后续的每个层都会使用它。否则,在图层级别对其进行映射。

  • 所以我会这样绘制:
    p <- ggplot(data = df, aes(x = x, y = y)) + geom_point(aes(size = count)) 
    p + geom_text(aes(label = label), size = 4, vjust = 2)

    关于r - 带有 geom_point 和 geom_text 的 ggplot 图例问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4221168/

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