本篇文章给大家分享的是有关如何最优雅的操纵json地图数据,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。知道最近在leaflet社区浏览案例的时候,发现大神已经提供了很好的json数据解析方案里,起码有两个(保守估计)以上的包可以完胜这个任务,而且是直接调用现成的函数,无需自己编写方案。以上所说的解决方案就是利用成熟的json接口(I/O)工具:geojsonio包和rgdal包:这两个包可以在主流的空间格式数据之间进行无缝转换。下面以世界地图为例,演示数据的转换过程。library(“jsonlite”)library(“ggplot2”)library(plyr)library(dplyr)library(geojsonio)library(rgdal)如果还是停留在使用jsonlite包手工提取数据时代, 香港云主机你可能需要经历以下不可描述的代码环节:setwd(“D:/R/mapdata/State”)###world_data
world_city_data
world_city_data
world_data$features$geometry$coordinates[[1]][,,1]world_data$features$geometry$coordinates[[1]][,,2]###而且以上代码还不能保证每次都好用,可能每遇到一个新的素材,随着josn内部层级嵌套结构的变化,你都需要随之更改代码,工作量那是杠杠的~可是如果你掌握了以下两个工具,那么josn数据操纵起来基本就没烦恼了,就跟之前操纵shp数据一样,这两个工作就是将json直接导入成控件格式数据,方便使用者进一步提取内部信息。world_Map1
world_Map2
world_Mapdata1%.[,c(“NAME”,”NAME_LONG”,”BRK_A3″,”POP_EST”,”GDP_MD_EST”)]%>%rename(region=NAME)world_Mapdata1$id
world_MapdataPloygon1%left_join(.,world_Mapdata1[,c(6,1,4)])ggplot(world_Mapdata1,aes(map_id=region))+geom_map(aes(fill=POP_EST),map=world_MapdataPloygon1)+expand_limits(x=world_MapdataPloygon1$long,y=world_MapdataPloygon1$lat)+scale_fill_gradient2(low=”#33A15A”,high=”#BB0126″,mid=”#FCFFB7″,midpoint=mean(world_Mapdata1$POP_EST))+coord_map(“ortho”,orientation=c(0,120,0))+scale_y_continuous(breaks=(-6:6)*15) +scale_x_continuous(breaks=(-12:12)*15)+theme_minimal()+theme(axis.text=element_blank(),axis.title=element_blank())一个案例应用(来自plotly官网社区,本来是用于展示plot_ly函数应用,这里借用一下)air
flights
flights$id
CairoPNG(“D:/world_map.png”,1000,900)showtext.begin()ggplot()+geom_polygon(data=world_MapdataPloygon1,aes(x=long,y=lat,group=group),fill=”grey95″,col=”grey”)+geom_segment(data=flights,aes(x=start_lon,y=start_lat,xend=end_lon,yend=end_lat),col=”red”,size=.2)+geom_point(data=air,aes(x=long,y=lat,size=cnt),shape=21,fill=”#D73434″,col=”grey”,alpha = 0.5)+scale_y_continuous(breaks=(-6:6)*15) +scale_x_continuous(breaks=(-12:12)*15)+scale_size_area(max_size=15)+coord_map(“ortho”,orientation=c(25,-100,0))+theme_minimal()+theme(axis.text=element_blank(),axis.title=element_blank())showtext.end()dev.off()最新版的ggplot2中已经出现了一个新的图层函数——geom_sf,专门用于处理空间数据格式,这样算起来,ggplot系统中已经有至少三个可以处理空间数据的函数了,geom_polygongeom_mapgeom_sf(如果不算ggmap这种外接函数的话)。以上就是如何最优雅的操纵json地图数据,小编相信有部分知识点可能是我们日常工作会见到或用到的。希望你能通过这篇文章学到更多知识。更多详情敬请关注开发云行业资讯频道。
这篇文章主要讲解了“怎么用BeautifulSoup爬取网页内容”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“怎么用BeautifulSoup爬取网页内容”吧!最近要做一个食品安全方面的项目,需要爬取新闻。于是…
免责声明:本站发布的图片视频文字,以转载和分享为主,文章观点不代表本站立场,本站不承担相关法律责任;如果涉及侵权请联系邮箱:360163164@qq.com举报,并提供相关证据,经查实将立刻删除涉嫌侵权内容。