无法更改分层 ggplot 中的图例标题

Cannot alter legend title in layered ggplot

我有以下图表:

ggplot(data = centmerge, aes(x=long, y=lat, group = centmerge$group)) +
geom_polygon(stat = "identity", fill = "green", color = "black") +
geom_point(data = centavg, aes(x = long, y = lat, group = Performance.Country.Name, size = Action_Absolute_Value/1000000))+  
ggtitle("Contract Costs") +
coord_map("polyconic")+
theme(axis.text.y = element_blank(), axis.text.x = element_blank(), axis.title.x=element_blank(), 
axis.title.y=element_blank())

它创建了以下图表:

我的问题是我无法改变 geom_point 的任何美学。例如,我无法更改图表上点的颜色,也无法更改图例标题。所有添加,例如:

theme(axis.text.y = element_blank(), axis.text.x = element_blank(), axis.title.x=element_blank(), 
    axis.title.y=element_blank())

最后只会影响 geom_polygon()。如果我尝试更改圆圈的颜色,它会恢复为淡红色,但我无法进一步更改它,而且我没有运气使用 theme()、scale_fill_discrete()、labs() 更改标题或任何方法。我首先要更改图例标题,还要更改地图上圆圈的颜色。我可以更改地图的颜色,但不能更改圆圈。

根据评论,这里是一个建议的方法。

在您的数据框中为 Action_Absolute_Value/1000000) 创建一个变量,将该变量命名为您想要的图例标题,并解决您的 legend-title 命名问题。

关于为点着色,根据 Gregor 的评论,在 geom_point 调用中添加 color = "red" [或您选择的任何颜色]。

您似乎对主题与图层有很多混淆。编辑主题有利于轴和网格线的颜色,但不是做标签的首选方式。 labs 功能适用于所有尺寸的标签,x, y, 颜色, 大小等,以及标题。

对于点的颜色,只需告诉geom_point你想要什么颜色即可。

ggplot(data = centmerge, aes(x=long, y=lat, group = centmerge$group)) +
  geom_polygon(stat = "identity", fill = "green", color = "black") +
  geom_point(data = centavg,
             aes(x = long, y = lat, group = Performance.Country.Name,
                 size = Action_Absolute_Value/1000000),
             # color goes outside of aes() because it's constant for all points
             color = "peachpuff3") +  
  coord_map("polyconic") +
  labs(x = "", y = "",
       # size will give the name for the size legend
       size = "Action Absolute Value (millions)",
       title = Contract Costs")
  theme(axis.text.y = element_blank(), axis.text.x = element_blank())