0

我在 R 中绘制了美国各州的图。

这是非常简单的代码:

library(usmap) 
library(ggplot2)
plot_usmap(region = 'states')

这是结果图: R中的美国各州图 - 各州未着色

此外,我有一个 csv 文件,其中包含美国各州的名称和一个颜色值,如果该州投票支持共和党,则该颜色值为红色,如果该州投票支持民主党,则该颜色值为蓝色。这是 CSV 文件的前 5 行:

状态 颜色
阿拉巴马州 #E81B23
阿拉斯加州 #E81B23
亚利桑那 #1405bd
阿肯色州 #E81B23

如何根据 CSV 文件中的颜色填充我的图形状态?

4

1 回答 1

0

要为函数中指定的区域着色plot_usmap(),您可以通过提供数据data=,然后将values=参数设置为数据中用于映射颜色的列。

这是一个包含一些随机生成数据的示例。使用plot_usmap()的数据集包括美国 50 个州 + 哥伦比亚特区,因此您需要确保它们都在您的数据集中,否则您可能会获得一些 NA 标签。

library(usmap) 
library(ggplot2)

set.seed(1234)

color_data <- data.frame(
  state = c(state.name, "District of Columbia"),
  the_colors = sample(c("A", "B"), size=51, replace=TRUE)
)

plot_usmap(
    region = "states",
    data = color_data,
    values = "the_colors",
    color="white"
  ) +
  scale_fill_manual(values=c("#E81B23", "#1405bd"))

在此处输入图像描述

请注意,我认为状态之间的线条在白色中看起来不错,因此可以color="white"解决此问题。您可能还会注意到,您通常不会在数据框中指定实际颜色 - 您可以通过scale_fill_manual(values=...). 在您的情况下,您可以使用scale_fill_identity().

对于您的数据,只需确保"States"数据集中的列已重命名"state"并且它应该可以工作。

于 2022-01-19T14:29:50.730 回答