为什么我无法更改此 sf object 绘图的图例标题?

Why am I not able to change the legend title for this sf object plotting?

我在名为“yield_annual_offshore_advantages”的向量中有一组 point-based 数据,它对应于以瓦特*小时表示的能量值,可以映射到一对经度,我从名为“totalityofsites”的数据框中获得的纬度坐标。使用下面的文本,我能够很好地显示要点和所有内容,但是图例有一个我想更改的标题。假设我想将其更改为“你好”。

我在下面的代码中做错了什么?如果我没记错的话,其他网站上也有类似的东西。

library(rnaturalearthdata)
library(rnaturalearth)
library(sf)
library(ggplot2)
world_map <- ne_coastline(scale = "medium", returnclass = "sf")
#ggplot2::ggplot(data = world_map) 
ggplot2::ggplot(data = world_map) + geom_sf() + geom_point(data = totalityofsites[1:20,], 
mapping = aes(x = lon, y = lat, color = (yield_annual_offshore_advantages/1000)), size = 3) 
  + coord_sf(xlim = c(min(totalityofsites$lon)-10, max(totalityofsites$lon) + 10), ylim = 
          c(min(totalityofsites$lat)-10, max(totalityofsites$lat)+10), expand = F) 
  + title(main = "Annual energy yield differences", legend(legend = "Hello")) + ggtitle("Annual values, in kWh") 

感谢任何帮助。

FWIW 我将把上面的输出放在这里。

您可以将 scale_colour_continuous(name = "hello") 添加到您的情节中。这是包含一些 made-up 数据的完整代表:

library(rnaturalearthdata)
library(rnaturalearth)
library(sf)
#> Linking to GEOS 3.8.0, GDAL 3.0.4, PROJ 6.3.1
library(ggplot2)

world_map <- ne_coastline(scale = "medium", returnclass = "sf")

set.seed(69)

totalityofsites <- 
  data.frame(lon = runif(20, -100, 100), lat = runif(20, -90, 90),
             yield_annual_offshore_advantages = runif(20, -2000, 2000))

ggplot2::ggplot(data = world_map) + 
  geom_sf() +
  geom_point(data = totalityofsites[1:20,], 
             mapping = aes(x = lon, y = lat, 
                           color = (yield_annual_offshore_advantages/1000)), 
             size = 3) + 
  coord_sf(xlim = c(min(totalityofsites$lon)-10, 
                    max(totalityofsites$lon) + 10), 
           ylim = c(min(totalityofsites$lat)-10, 
                    max(totalityofsites$lat)+10), expand = F) +
  scale_colour_continuous(name = "hello") +
  ggtitle("Annual values, in kWh") 

reprex package (v0.3.0)

于 2020-08-16 创建