R 每日死亡的热图动画
我有一个数据框,其中有列Region、Date和Deaths,我已经导入了包“maps”及其50个州的地图 我看到的所有示例都要求我将数据与地图进行R 每日死亡的热图动画,r,ggplot2,gganimate,R,Ggplot2,Gganimate,我有一个数据框,其中有列Region、Date和Deaths,我已经导入了包“maps”及其50个州的地图 我看到的所有示例都要求我将数据与地图进行merge()合并。然而,当我进行合并时,我最终得到了一个超过400万行的对象 每日数据在melted8和melted9中 由于merge()的大小很大,因此animate()步骤需要很长时间才能运行。。。事实上,我在10分钟后就把它缩短了。我不知道我的ggplot() 是否有一个尺寸更合理的对象可以提供给ggplot(),我是否提供了正确的说明 #
merge()
合并。然而,当我进行合并时,我最终得到了一个超过400万行的对象
每日数据在melted8
和melted9
中
由于merge()
的大小很大,因此animate()
步骤需要很长时间才能运行。。。事实上,我在10分钟后就把它缩短了。我不知道我的ggplot()
是否有一个尺寸更合理的对象可以提供给ggplot()
,我是否提供了正确的说明
# a sample
melted8[sample(nrow(melted8), 5), ]
region date deaths
<chr> <int> <dbl>
arizona 214 7.2815030
missouri 287 0.0000000
arkansas 160 0.3313668
mississippi 53 0.0000000
new jersey 300 0.7880939
#示例
熔化8[样品(nrow(熔化8),5),]
地区死亡日期
亚利桑那州2147.2815030
密苏里州2870.0000000
阿肯色州160 0.3313668
密西西比州5300000000
新泽西州300 0.7880939
库(ggplot2)
库(gganimate)
图书馆(地图)
us.map如果使用geom\u map
而不是geom\u polygon
,则不必将数据集与地图文件合并
看看这对你来说是否更快:
layer_type.GeomMap <- function(x) 'point' # must run this line first
melted8 %>%
ggplot(aes(fill = deaths, map_id = region)) +
geom_map(map = us.map) +
expand_limits(x = us.map$long, y = us.map$lat) +
coord_fixed() +
scale_fill_gradient(low = "gray65", high = "red") +
theme(legend.position = "bottom") +
labs(title = "Deaths per Day: {closest_state}",
x = "lon", y = "lat") +
transition_states(date)
layer\u type.geomap%
ggplot(aes(填充=死亡,地图id=区域))+
geom_地图(map=us.map)+
扩展限制(x=us.map$long,y=us.map$lat)+
固定坐标+
比例填充梯度(低=“灰度65”,高=“红色”)+
主题(legend.position=“底部”)+
实验室(title=“每天死亡:{最近的州}”,
x=“lon”,y=“lat”)+
过渡状态(日期)
使用的数据集(模拟每个州7天的记录):
库(dplyr)
种子集(123)
熔化8%
突变(日期=列表(序号(1,7)))%>%
tidyr::unnest(cols=c(日期))%>%
按地区划分的组别%>%
突变(死亡=abs(rnorm(n())))%>%
解组()
如果使用geom\u-map
而不是geom\u-polygon
,则不必将数据集与地图文件合并
看看这对你来说是否更快:
layer_type.GeomMap <- function(x) 'point' # must run this line first
melted8 %>%
ggplot(aes(fill = deaths, map_id = region)) +
geom_map(map = us.map) +
expand_limits(x = us.map$long, y = us.map$lat) +
coord_fixed() +
scale_fill_gradient(low = "gray65", high = "red") +
theme(legend.position = "bottom") +
labs(title = "Deaths per Day: {closest_state}",
x = "lon", y = "lat") +
transition_states(date)
layer\u type.geomap%
ggplot(aes(填充=死亡,地图id=区域))+
geom_地图(map=us.map)+
扩展限制(x=us.map$long,y=us.map$lat)+
固定坐标+
比例填充梯度(低=“灰度65”,高=“红色”)+
主题(legend.position=“底部”)+
实验室(title=“每天死亡:{最近的州}”,
x=“lon”,y=“lat”)+
过渡状态(日期)
使用的数据集(模拟每个州7天的记录):
库(dplyr)
种子集(123)
熔化8%
突变(日期=列表(序号(1,7)))%>%
tidyr::unnest(cols=c(日期))%>%
按地区划分的组别%>%
突变(死亡=abs(rnorm(n())))%>%
解组()
谢谢,这看起来可以用了!我将绘图传递给一个变量a,并使用animate(a,nframes=300)来允许更多的帧。谢谢,这看起来可以工作了!我将绘图传递给变量a,并使用animate(a,nframes=300)来允许更多帧。
library(dplyr)
set.seed(123)
melted8 <- data.frame(region = unique(us.map$region)) %>%
mutate(date = list(seq(1, 7))) %>%
tidyr::unnest(cols = c(date)) %>%
group_by(region) %>%
mutate(deaths = abs(rnorm(n()))) %>%
ungroup()