博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
用R画海盗袭击区域的.gif图
阅读量:5966 次
发布时间:2019-06-19

本文共 1963 字,大约阅读时间需要 6 分钟。

摘自 

在R-blogger看到的一篇用R画.gif动态图的文章,记录下来。

 

library(maps)library(hexbin)library(maptools)library(ggplot2)library(sp)library(mapproj)library('animation')# piRate the data from the militaRydownload.file("http://msi.nga.mil/MSISiteContent/StaticFiles/Files/ASAM_shp.zip", destfile="ASAM_shp.zip")unzip("ASAM_shp.zip")# extRact the data fRame we need fRom the shape file# you may need to use a diffeRent name depending on d/l datepirates.df <- as.data.frame(readShapePoints("ASAM 02 OCT 13.shp")) # get the woRld map dataworld <- map_data("world")world <- subset(world, region != "Antarctica") # inteRcouRse AntaRctica# yeaRs we want to loop thoRughends <- 1979:2013# loop thRough, extRact data, build plot, save plot: BOOMfor (end in ends) {  png(filename=sprintf("arrr-%d.png",end),width=500,height=250,bg="white") # change to 1000x500 or laRgeR  dec.df <- pirates.df[pirates.df$DateOfOcc > "1970-01-01" & pirates.df$DateOfOcc < as.Date(sprintf("%s-12-31",end)),]   rng <- range(dec.df$DateOfOcc)  p <- ggplot()   p <- p + geom_polygon(data=world, aes(x=long, y=lat, group=group), fill="gray40", colour="white")  p <- p + stat_summary_hex(fun="length", data=dec.df, aes(x=coords.x1, y=coords.x2, z=coords.x2), alpha=0.8)  p <- p + scale_fill_gradient(low="white", high="red", "Pirate Attacks recorded")  p <- p + theme_bw() + labs(x="",y="", title=sprintf("Pirate Attacks From %s to %s",rng[1],rng[2]))  p <- p + theme(panel.background = element_rect(fill='#A6BDDB', colour='white'))  print(p)  dev.off()}

 

 

如此可以画出35幅.png的静态图,用谢益辉的animation package生成.gif图。

# requires imagemagickpng.name <- sprintf("arrr-%d.png",ends)im.convert(files=png.name, output = "world.gif", convert = c("convert", "gm convert"),           cmd.fun = system, extra.opts = "", clean = FALSE)file.copy(from=paste("C:/Users/~/AppData/Local/Temp/RtmpEvkIWJ", "world.gif", sep="/"),         to='D:/R/world.gif', overwrite =T, copy.mode = TRUE)

 

 

 

转载于:https://www.cnblogs.com/BinbinChen/articles/3353843.html

你可能感兴趣的文章
HBase 笔记3
查看>>
【Linux】Linux 在线安装yum
查看>>
Atom 编辑器系列视频课程
查看>>
[原][osgearth]osgearthviewer读取earth文件,代码解析(earth文件读取的一帧)
查看>>
使用dotenv管理环境变量
查看>>
温故js系列(11)-BOM
查看>>
Vuex学习
查看>>
bootstrap - navbar
查看>>
切图崽的自我修养-[ES6] 编程风格规范
查看>>
服务器迁移小记
查看>>
FastDFS存储服务器部署
查看>>
Android — 创建和修改 Fragment 的方法及相关注意事项
查看>>
swift基础之_swift调用OC/OC调用swift
查看>>
Devexpress 15.1.8 Breaking Changes
查看>>
ElasticSearch Client详解
查看>>
mybatis update返回值的意义
查看>>
expdp 详解及实例
查看>>
通过IP判断登录地址
查看>>
深入浅出JavaScript (五) 详解Document.write()方法
查看>>
Beta冲刺——day6
查看>>