【问题标题】:How do I conditionally color in a US States map using ggplot?如何使用 ggplot 有条件地在美国地图上着色?
【发布时间】:2021-11-23 06:21:07
【问题描述】:

我的目标是将低于销售平均水平的状态显示为红色,将高于平均水平的状态显示为绿色。我的代码似乎只是在做某种颜色的轮廓,我不知道蓝色填充是从哪里来的。实际数据包含所有状态,但为此我仅举了 5 个示例。

    library(ggplot2)
    library(tidyverse)
    library(mapdata)
    library(dplyr)
    
    MainStates <- map_data("state")
    State_Name <- c("alabama","arkansas","arizona","california","colorado")
    Sales <- c(100,200,250,275,310)
    df2 <- data.frame(State_Name,Sales)
    MergedStates <- inner_join(MainStates, df2, by = c("region" = "State_Name"))

    p <- ggplot() + geom_polygon(data = MergedStates,
                         aes(x=long, y=lat, group=group, fill=Sales),
                         color = ifelse(MergedStates$Sales <= 
                         mean(MergedStates$Sales),"red","green"), size = 0.2)
    p

【问题讨论】:

    标签: r ggplot2 maps tidyverse


    【解决方案1】:

    我想这就是你想要达到的目标?在geom_sf 中,color 指的是边框的颜色,fill 指的是填充多边形的颜色(对于多边形)。

    library(ggplot2)
    library(tidyverse)
    library(mapdata)
    #> Loading required package: maps
    #> 
    #> Attaching package: 'maps'
    #> The following object is masked from 'package:purrr':
    #> 
    #>     map
    library(dplyr)
    
    MainStates <- map_data("state")
    State_Name <- c("alabama","arkansas","arizona","california","colorado")
    Sales <- c(100,200,250,275,310)
    df2 <- data.frame(State_Name,Sales)
    MergedStates <- inner_join(MainStates, df2, by = c("region" = "State_Name"))
    
    p <- ggplot() + geom_polygon(data = MergedStates,
                                 aes(x=long, y=lat, group=group),
                                 fill = ifelse(MergedStates$Sales <= 
                                                  mean(MergedStates$Sales),"red","green"), size = 0.2)
    p
    

    reprex package (v2.0.1) 于 2021 年 10 月 1 日创建

    【讨论】:

      猜你喜欢
      • 2016-03-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-10-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多