使用usmap库在R中绘制数据框

Plotting data frame in R using usmap library

我是 R 的新手,我正在尝试使用 usmap 库绘制县值数据框。

我有一个数据集,其中包含特定区域的所有 FIPS(县代码)和我想在地图上显示的数据(死亡)。

这是我的第一个 R 脚本,所以我想要完成的事情可能非常简单,我只是不知道我在做什么。

我很确定我收到的错误是因为我没有指定任何类型的着色来应用于数据?我不确定。

这是我的代码 - 请注意,我最初只是尝试绘制一帧数据(特定日期):

library(usmap)
library(ggplot2)
library(RColorBrewer)

#set working directory
setwd("C:/Users/Name/Documents/RScripts/")

#input data from file separated by  commas
usa.dat <- read.csv("covid.csv", header = T)

#Start at 1/22/2020
#End at 10/8/2021

plot_usmap(regions = "counties",
           data=usa.dat$countyFIPS,
           values=usa.dat$X1.22.2020,
           ) +
theme(panel.background = element_rect(color = "black", fill = "black"))

这是数据:

我得到的错误是 Error in if (is.null(geom_args[["fill"]]) & nrow(data) == 0) { : argument is of length zero

当我从函数中删除 data/values 行时,我得到的地图如下所示:

非常感谢任何帮助!

理想情况下,我想用色标为数据的每一帧制作动画;如果你们能帮助我,我将不胜感激!

编辑:

好的,我已经为此工作了一段时间,我设法让它工作了。但是,我不知道如何更新使用的颜色 scales/gradients。

我让它循环遍历数据并保存了一堆图,这太棒了!如果有人可以提供帮助,只需要弄清楚如何更改 colors/scales!

我弄明白了(在 Ben 的帮助下!)

library(usmap)
library(ggplot2)
library(viridis)
library(RColorBrewer)
library(stringr)
library(stringi)

#set working directory
setwd("C:/Users/Tyrael/Documents/RScripts/")

#input data from file separated by  commas
usa.dat <- read.csv("ccovid.csv", header = T)

for (i in 2:ncol(usa.dat)) {
    da <- data.frame(fips=usa.dat$countyFIPS,val=usa.dat[,i])
    da$val <- cut(da$val,breaks=c(0,100,500,1000,5000,20000,30000),labels=c("1-100","100-500","500-1K","1K-5K","5K-20K","20K-30K"))
    theDate <- substr(names(usa.dat)[i],2,100)
    plot_usmap(regions = "counties",
               data=da,
               values="val"
    ) + 
    labs(title=paste("Covid-19 Deaths ",str_replace_all(theDate,"\.","/"),sep='')) +
    scale_fill_viridis(name="Deaths",discrete=TRUE,na.translate=F) +
    theme(panel.background = element_rect(color = "#101010", fill = "#101010"))
    ggsave(paste(sprintf("%03d",i),".png",sep=''))
}

这会将所有内容拆分成如下所示的图例:

文件按顺序输出,作为奖励,我将展示如何在 ffmpeg 中组合:

ffmpeg -framerate 15 -i "C:\Users\Tyrael\Documents\RScripts\vpublish\%03d.png" -codec copy out.mkv

并将其转换为 .mp4 格式:

ffmpeg -i out.mkv -codec copy out.mp4

结果:https://www.youtube.com/watch?v=-z3LL5j__es