美国各州在 R 中绘制选举结果

us states plot in R with election results

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

这是非常简单的代码:

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

这是结果图: Figure of US states in R - states are not colored

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

State Color
Alabama #E81B23
Alaska #E81B23
Arizona #1405bd
Arkansas #E81B23

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

要为 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",它应该可以正常工作。