gpt4 book ai didi

r - 使用 geom_sf 时如何更改图例形状?

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

我正在使用 geom_sfggplot 绘制点,并且想更改点的形状。我可以在 map 上更改它们,但图例从不反射(reflect)点的形状,即使使用 override.aes 也是如此。

我不知道我是否遗漏了什么或者这是一个错误。我在 Tidyverse 问题跟踪器和 this one 中追踪了类似的问题很相似。但是 "resolved" 都没有问题似乎解决了我的问题。

这是一个示例,显示 ggplot 如何无法将形状传播到图例。

library(sf)
library(ggplot2)

cities <- tibble::tribble(
~ lon, ~ lat, ~ name, ~ pop,
5.121420, 52.09074, "Utrecht", 311367,
6.566502, 53.21938, "Groningen", 189991,
4.895168, 52.37022, "Amsterdam", 779808
) %>% sf::st_as_sf(coords = c("lon", "lat"), crs = 4326)

lines_sfc <- sf::st_sfc(list(
sf::st_linestring(rbind(cities$geometry[[1]], cities$geometry[[2]])),
sf::st_linestring(rbind(cities$geometry[[2]], cities$geometry[[3]]))
))

lines <- sf::st_sf(
id = 1:2,
size = c(10,50),
geometry = lines_sfc,
crs = 4326
)

ggplot(cities) +
geom_sf(aes(shape = name))

ggplot(cities) +
geom_sf(aes(shape = name)) +
scale_shape_manual(values = c(1:3),
guide = guide_legend(
override.aes = list(shape = c(1:3))))

ggplot output

我希望图例条目具有与 map 相同的形状,但我得到的是空方 block 。

最佳答案

ggplot() + 
geom_sf(data = cities, aes(shape = name), show.legend = "point") +
scale_shape_manual(values = c(1, 2, 3))

enter image description here

关于r - 使用 geom_sf 时如何更改图例形状?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57318977/

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