如何在R中基于选举结果CSV文件为美国各州地图填充对应颜色
给美国各州地图按CSV颜色值填充的解决方案
没问题,这事儿很简单,咱们一步步来搞定:
步骤1:读取你的颜色数据CSV
首先把存着州名和对应颜色的CSV文件读进R里,用基础的read.csv()就行(习惯用tidyverse的话,也可以用read_csv(),效果一致):
library(usmap) library(ggplot2) # 替换成你的CSV文件实际路径 state_color_data <- read.csv("你的颜色文件.csv")
步骤2:结合数据绘制带颜色的地图
plot_usmap()支持直接传入自定义数据,核心是用data参数指定你的颜色数据集,values参数对应CSV里的颜色列名(这里是Color),最后用scale_fill_identity()直接调用CSV里的十六进制颜色值——这个刻度会直接把列里的颜色代码当成填充色,不需要额外的映射转换:
plot_usmap(region = "states", data = state_color_data, values = "Color") + scale_fill_identity(name = "党派倾向", guide = "legend", labels = c("民主党", "共和党")) + # 给图例加标签,可选操作 theme_void() # 去掉多余的坐标轴和背景,让地图更清爽
关键细节提醒
- 一定要保证你CSV里
State列的州名和usmap使用的州名完全匹配(比如都是全称、首字母大写格式),不然匹配不上的州会显示默认灰色 - 如果不需要图例,可以删掉
scale_fill_identity()里的guide = "legend"参数 - 如果CSV文件不在当前工作目录,记得写完整路径,比如
"C:/Users/xxx/Documents/state_colors.csv"
这样操作后,你的地图就会严格按照CSV里的设置,把支持共和党的州涂红、支持民主党的州涂蓝啦!
内容的提问来源于stack exchange,提问作者Mahsa Z
相关产品推荐
相关产品推荐

