gpt4 book ai didi

r - 当我通过美学提供其值时,无法使 geom_sf 线宽正常运行

转载 作者:行者123 更新时间:2023-12-05 01:41:22 24 4
gpt4 key购买 nike

我有一个 shapefile,my_sf。如果我写:

ggplot() +
geom_sf(
data = my_sf,
size = 0.5 # this is the default value actually
)

然后它工作得很好。但是,如果我将 my_line_width 属性添加到 my_sf,并将该列中的每个值设置为 0.5,然后写入:

ggplot() +
geom_sf(
data = my_sf,
aes(size = my_line_width)
)

然后我得到一堆可怕地重叠的大线。如果法线的宽度为 0.5,那么这些线的宽度可能为 4。我不明白为什么它们不会产生相同的结果(除了图例,我知道只有当您使用美学)。有谁知道这是怎么回事吗?

我也尝试过使用 lwd 而不是 size。完全相同的事情发生了:当我只设置一个静态值时它很好,但是当我试图通过美学提供值时,它就出错了。

最佳答案

我很确定这与 aes 将数据映射到绘图背后的想法有关。例如,参见 Difference between passing options in aes() and outside of it in ggplot2When does the aesthetic go inside or outside aes()? .使用 sizeaes 内的任何内容以 ggplot 将理解的任何方式(更多内容见下文)或 之外的任何方式将数据映射到美学>aes 具有一个常量值,以实际让 ggplot 使用该值。您发现的行为对于 ggplot 通常是正确的,而不是特定于 geom_sf

您可以看到即使使用 geom_point

尺寸也是如此
mtcars %>% ggplot(aes(mpg, wt, size=cyl))+geom_point()
k<-4
mtcars %>% ggplot(aes(mpg, wt, size=k))+geom_point()
k<-6
mtcars %>% ggplot(aes(mpg, wt, size=k))+geom_point()
k<-10
mtcars %>% ggplot(aes(mpg, wt, size=k))+geom_point()

此外,默认的大小处理与 ggplot2 相当困惑,IMO:Does point area not increase linearly with size with scale_size_continuous? .当只在 aes 中提供 1 个值时,线条粗细可能始终是基线默认大小。正如您的评论者所指出的,您可以使用 scale 调整此行为,并且您可以在某种程度上使用“identity”,但提供 range https://stackoverflow.com/a/11570926/8400969 可能会有所帮助.

关于r - 当我通过美学提供其值时,无法使 geom_sf 线宽正常运行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54548680/

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