【发布时间】:2017-06-03 08:55:40
【问题描述】:
尝试使用 gganimation 包和 frame 参数在 R 中创建地图动画。
例如
library(ggmap)
library(ggplot2)
library(gganimate)
library(readxl)
library(animation)
#adding data
channels_contracted=c(10,20,30,40,50,70,10,1)
year=c(1999,1999,2000,2000,2001,2002,2003,2003)
latitude=c(44.61217,46.97676,46.66602,46.51235,46.77762, 41.00222, 46.51235,46.77762)
longitude=c(30.72798,30.71394, 31.94281, 30.70631, 33.47262, 29.90559, 30.71394, 30.71775)
type=c("ASZ", "AGS", "ASZ", "AGS", "GNS", "GNS1", "GNS1", "AGS")
df = data.frame(channels_contracted, year, latitude, longitude, type)
p <- ggmap(get_map(c(32.10399,49.04548), zoom = 5))
suppressWarnings(p <- p + geom_point(aes(longitude,latitude,frame=year,cumulative=FALSE, size = channels_contracted, color = type), df, alpha=0.3))
ani.options(interval=2)
gganimate(p)
它工作正常,我在图像标题中获得年份编号。 (#note - 您需要安装和配置 imagemagick。)
但我需要向每个帧添加特定数据 - 例如,对于年份为 2001 年的帧,我需要添加 2001 年合同的总和以及标题或其他一些地方的另一个数据。
如何做这样的事情?任何人都可以提供在每个框架上添加特定文本的示例吗?
【问题讨论】:
-
请编辑您的问题并使其成为您上一个问题的答案中所问的最小可重复示例(顺便说一句,这似乎已经解决了您的问题,以便您可以将其标记为已解决)。 Here's a guide。另外,您在哪个框架中需要什么信息?请说明。
-
lukeA,谢谢你的评论。完成:)
-
看来我可以使用 geom_text() 添加一些文本,但是如何生成这些文本 - 我需要编写一些函数,例如get_text_func(year) 为每一帧生成这个文本并在 geom_text(get_text_func(year)) 中运行这个函数?
标签: r animation ggmap gganimate