为什么我无法更改此SF对象图的图例标题?

问题描述

我在名为“ yield_annual_offshore_advantages”的向量中有一组基于点的数据,这些数据对应于以瓦特*小时表示的能量值,并且可以映射到一对我从a得到的经度,纬度坐标上数据框称为“网站总数”。使用下面的文本,我可以很清楚地显示要点和所有内容,但是图例具有我想要更改的标题。假设我想将其更改为“ Hello”。

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

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") 

感谢您的帮助。

首先,我将上面的输出在这里

What the above code produces,and why I need to change the legend title

解决方法

您可以将scale_colour_continuous(name = "hello")添加到绘图中。这是完整的reprex,其中包含一些虚构数据:

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创建