我对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
当我从函数中删除数据/值行时,我得到了如下所示的映射:

任何帮助都是非常感谢的!
理想情况下,我想用彩色比例尺动画化每一帧数据,如果你们能帮我,我会很感激的!
编辑
好吧,我已经做了很长一段时间了,我设法让它起作用了。但是,我不知道如何更新所使用的色阶/渐变。
我让它循环遍历数据并保存一堆图表,所以这是非常棒的!只要知道如何改变颜色/比例,如果有人可以帮助!

发布于 2021-10-12 04:06:58
我弄明白了(在本的帮助下)
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://stackoverflow.com/questions/69532190
复制相似问题