You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在county_choroplethR地图添加县名与雇员数附加数据?

可行,具体实现方法如下

county_choropleth基于ggplot2构建,所以可以通过叠加ggplot2的图层轻松添加县名和雇员总数这类附加信息,核心是把你的业务数据和地图的坐标数据关联起来,再用文本图层展示内容。

步骤1:准备并关联数据

确保你的CSV数据包含fips编码(用于和县地图数据匹配的唯一标识)、薪资、雇员总数、县名字段。先读取数据并与内置的县中心点数据合并:

library(county_choropleth)
library(dplyr)

# 读取你的业务数据(CSV文件)
county_biz_data <- read.csv("your_county_data.csv")

# 从内置county_map提取每个县的中心点坐标
county_centers <- county_map %>%
  group_by(fips) %>%
  summarize(long = mean(long), lat = mean(lat))

# 合并中心点数据与业务数据(通过fips匹配)
combined_data <- left_join(county_centers, county_biz_data, by = "fips")

步骤2:创建基础薪资地图并添加文本信息

先生成你的薪资填充地图,再叠加geom_text或geom_label图层展示县名和雇员总数:

# 生成基础薪资 choropleth 地图
base_map <- county_choropleth(county_biz_data,
                              value = "salary",
                              title = "各县薪资分布及雇员总数",
                              legend = "平均薪资")

# 添加县名和雇员总数文本
final_map <- base_map$ggplot +
  geom_text(data = combined_data,
            aes(x = long, y = lat,
                label = paste0(county_name, "\n雇员数: ", employee_count)),
            size = 2.2, color = "darkslategray")

# 输出地图
print(final_map)

优化建议

  • 避免文本重叠:如果县密集导致文字挤在一起,可以用ggrepel包的geom_text_repel替代geom_text,自动调整文本位置:
    library(ggrepel)
    final_map <- base_map$ggplot +
      geom_text_repel(data = combined_data,
                      aes(x = long, y = lat,
                          label = paste0(county_name, "\n雇员数: ", employee_count)),
                      size = 2.2, color = "darkslategray",
                      max.overlaps = 8) # 限制允许重叠的文本数量
    
  • 针对小县:可以筛选只显示人口/雇员数达到阈值的县名,避免地图过于杂乱:
    filtered_data <- combined_data %>% filter(employee_count >= 1000)
    

内容的提问来源于stack exchange,提问作者Kyle Overton

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.25 20:31:04