ggplot2 geom_point 图例中的 alpha 不同

ggplot2 geom_point alpha different in plot to legend

我的情节有些奇怪,我想不通。似乎我情节中气泡的透明度与图例中气泡的透明度不同。

我发现很难为此提供一个代表,所以我希望代码没问题:

ggplot() + geom_polygon(data = all.shp, aes(x = long, y = lat, group=group), 
                                                 color = "grey", size = 0.3,fill = NA) +
      geom_point(data=substation_results, aes(x=Easting, y=Northing, size=factor(Population), 
                                          colour=factor(Population), fill = NA), alpha=0.5) +
      coord_equal() + 
      scale_fill_brewer(palette="Spectral", name = 
      expression('Voltage\nInstability\nZones')) +
      theme(axis.text = element_blank(), axis.ticks = element_blank(), axis.title = element_blank(), 
      legend.position = "right") +
      guides(fill = guide_legend(reverse = FALSE)) + 
      labs(title = "(A) Population Served\nPer Substation") +
      scale_colour_manual(name = "Population\nServed Per\nSubstation\n(Million)",
                  labels = c("<0.15", "0.15-0.3", "0.3-0.45", "0.45-0.6",
                             "0.6-0.75", "0.75-0.9",">0.9"),
                  values = c("skyblue4", "blue", "green", "yellow", "orange", "red", "brown")) +   
      scale_size_manual(name = "Population\nServed Per\nSubstation\n(Million)",
                labels = c("<0.15", "0.15-0.3", "0.3-0.45", "0.45-0.6",
                           "0.6-0.75", "0.75-0.9",">0.9"),
                values = c(1, 2, 3, 4, 5, 6, 7))

这是剧情的形象。可以看到气泡的颜色和图例完全不一样。重要的是,更改 geom_point 中的 alpha 不会改变差异:

我通过删除重复的观察结果解决了这个问题:

transformer_node_count <- unique(transformer_node_count) 

并实现所需的输出: