首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >R GGplot -县地图-如何在没有数据的情况下勾勒出州/县的轮廓?

R GGplot -县地图-如何在没有数据的情况下勾勒出州/县的轮廓?
EN

Stack Overflow用户
提问于 2021-10-06 21:20:49
回答 1查看 62关注 0票数 0

我正在尝试制作一个全息地图,除了两个问题之外,它工作得很好。

1-各州的轮廓与县没有不同,因此很难区分一个州的结束和另一个州的开始

2-不是所有的县都有数据,所以绘图有很多空白点。有没有一种简单的方法来给缺失的人一个轮廓?

代码语言:javascript
复制
library(tidyverse)
library(urbnmapr)
library(urbnthemes)
library(janitor)

set_urbn_defaults(style = "map")

broadband <- readr::read_csv('https://raw.githubusercontent.com/rfordatascience/tidytuesday/master/data/2021/2021-05-11/broadband.csv') %>% 
  clean_names()

broadband <- broadband %>% 
  right_join(counties, by = "county_name")

broadband %>% 
  drop_na(broadband_availability_per_fcc) %>%
  mutate(broadband_availability_per_fcc = case_when(
      broadband_availability_per_fcc == "-" ~ "0.00",
      TRUE ~ broadband_availability_per_fcc
    ),
    broadband_availability_per_fcc = as.double(broadband_availability_per_fcc)) %>% 
  ggplot(aes(long, lat, group = group, fill = broadband_availability_per_fcc)) +
    geom_polygon(color = "#ffffff", size = .25) +
    coord_map(projection = "albers", lat0 = 39, lat1 = 45)

下面是我尝试过的更多尝试:

代码语言:javascript
复制
states_sf <- get_urbn_map(map = "states", sf = TRUE)
counties_sf <- get_urbn_map(map = "counties", sf = TRUE)

broadband

broadband_map <- broadband %>% 
  inner_join(counties_sf, by = "county_name")

# Works without geom_sf county data
broadband_map %>% 
  drop_na(broadband_availability_per_fcc) %>% 
  mutate(broadband_availability_per_fcc = case_when(
    broadband_availability_per_fcc == "-" ~ "0.00",
    TRUE ~ broadband_availability_per_fcc),
  broadband_availability_per_fcc = as.double(broadband_availability_per_fcc)) %>% 
  ggplot() +
    geom_sf(data = states_sf, fill = NA, color = "black", size = 0.25) +
    # geom_sf(mapping = aes(fill = broadband_availability_per_fcc), color = NA) +
    coord_sf(datum = NA)

# Does not work when adding county level data
broadband_map %>% 
  drop_na(broadband_availability_per_fcc) %>% 
  mutate(broadband_availability_per_fcc = case_when(
    broadband_availability_per_fcc == "-" ~ "0.00",
    TRUE ~ broadband_availability_per_fcc
    ),
    broadband_availability_per_fcc = as.double(broadband_availability_per_fcc)) %>% 
  ggplot() +
    geom_sf(mapping = aes(fill = broadband_availability_per_fcc), color = NA) +
    geom_sf(data = states_sf, fill = NA, color = "black", size = 0.25) +
    coord_sf(datum = NA)
EN

回答 1

Stack Overflow用户

发布于 2021-10-06 22:29:32

我重新运行代码时没有

代码语言:javascript
复制
set_urbn_defaults(style = "map")

并注意到未映射的县正在被映射。

解决方案是更改#fff中的颜色...在geom_polygon中设置为“黑色”,或者任何不能混合到背景中的东西,并且它起作用了!

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/69472805

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档