千家信息网

ggplot2中怎么自定义数据地图版面范围

发表于:2026-11-01 作者:千家信息网编辑
千家信息网最后更新 2026年11月01日,这篇文章主要介绍了ggplot2中怎么自定义数据地图版面范围,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。之前联系过程中遇到的一个小技
千家信息网最后更新 2026年11月01日ggplot2中怎么自定义数据地图版面范围

这篇文章主要介绍了ggplot2中怎么自定义数据地图版面范围,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。

之前联系过程中遇到的一个小技术问题,就是在ggplot2制作数据地图时,使用标度调整参数进行范围限定时,总是出现错误,版面上出现交错的线条和条带。

应该是自己添加的标度限定参数与ggplot2映射规则出现了冲突,特别再加上空间投影参数,这种冲突和错乱就显得更加明显。

其实我就是想要获取这样一幅数据地图,而不是做完整个世界地图之后再去裁剪导出的图片。(那样会显得很不fashion)。

library("ggplot2")

library("plyr")

library("maptools")

library("ggthemes")

options(stringsAsFactors=FALSE,warn=FALSE)

world_map <-readShapePoly("D:/R/rstudy/wold_map/World_region.shp")

x <- world_map@data

xs <- data.frame(x,id=seq(0:250)-1)

world_map1 <- fortify(world_map)

world_map_data <- join(world_map1, xs, type = "full")

mydata <- read.csv("D:/R/rstudy/wold_map/Region_map.csv")

mydata$fam<-cut(mydata$zhibiao1,breaks=c(0,100,200,300,400,500),labels=c('0~100','100~200','200~300','300~400','400~500'),order=TRUE,include.lowest=TRUE)

world_data <- join(world_map_data, mydata, type="full")

这是完整的世界地图:

windowsFonts(myfont=windowsFont("微软雅黑 Light"))

ggplot(world_data, aes(x = long, y = lat, group = group,fill =fam)) +

geom_polygon(colour="white")+

scale_fill_brewer(palette="Blues") + ###Blues&Greens

ggtitle("某公司2015~2016年度营业状况分布图")+

guides(fill=guide_legend(reverse=TRUE,title=NULL))+

theme_map() %+replace%

theme(title=element_text(family="myfont"),legend.position=c(0.08,0.4),legend.text.align=1)

倘若我想将该地图版面聚焦到中国的领土范围内,但是呢,又不想单独呈现孤零零的中国地图,我需要中国周边的这些邻国边界,来锁定中国在亚洲地区的大致位置,这些周边领国边界不要求都拥完整的行政区划,可以根据版面的需要,进行矩形切割就行。

这样看起来必须对世界地图进行切割,而且需要切割的是美学映射参数x,y的范围(也就是坐标系统的范围)。

我们都知道在ggplot2系统中,调整X,Y的标度范围拥有布置一个的可选参数:

  • xlim/ylim

  • expand_limits()

  • scale_x/y_continuous()

其实坐标轴系统中也可以嵌入标度调整参数:

  • coord_map()

那么应该使用哪个方法进行调整呢,这里就卖个关子,我们一个一个来尝试:

切割的范围为:

  • 经度:60~155

  • 维度:0~65

这个范围刚好可以涵盖我国领土的完整范围:

  • 方案一:xlim/ylim

ggplot(world_data, aes(x = long, y = lat, group = group,fill =fam)) +

geom_polygon(colour="white")+

xlim(60,155)+ylim(0,65)+

scale_fill_brewer(palette="Blues") +

coord_map("polyconic") +

ggtitle("某公司2015~2016年度营业状况分布图")+

guides(fill=guide_legend(reverse=TRUE,title=NULL))+

theme_map() %+replace%

theme(title=element_text(family="myfont"),legend.position=c(0.08,0.4),legend.text.align=1)

切割效果如下,有反馈但是效果不佳,未达到目的,第一种方案宣告失败。

  • 方案二:expand_limits()

ggplot(world_data, aes(x = long,y=lat,group=group)) +

geom_polygon(aes(fill =fam),colour="white")+

expand_limits(x=c(60,155),y=c(0,65))+

scale_fill_brewer(palette="Blues") +

coord_map("polyconic") +

ggtitle("某公司2015~2016年度营业状况分布图")+

guides(fill=guide_legend(reverse=TRUE,title=NULL))+

theme_map() %+replace%

theme(title=element_text(family="myfont"),legend.position=c(0.08,0.4),legend.text.align=1)

这次结果又失败了,不仅没有完成目标,底部还出现了一条莫名其妙的线条。

  • 方案三:scale_x/y_continuous()

ggplot(world_data, aes(x = long, y = lat, group = group,fill =fam)) +

geom_polygon(colour="white")+

scale_x_continuous(limits=c(60,155))+

scale_y_continuous(limits=c(0,65))+

scale_fill_brewer(palette="Blues") +

coord_map("polyconic") +

ggtitle("某公司2015~2016年度营业状况分布图")+

guides(fill=guide_legend(reverse=TRUE,title=NULL))+

theme_map() %+replace%

theme(title=element_text(family="myfont"),legend.position=c(0.08,0.4),legend.text.align=1)

第三种方案又以失败告终,结果跟第一种的问题一模一样。

那么现在就剩最后一一种方案啦,希望这次能成功。

  • 方案四:coord_map()

ggplot(world_data,aes(x =long,y=lat,group=group,fill=fam))+

geom_polygon(colour="white")+

scale_fill_brewer(palette="Blues") +

coord_cartesian(xlim=c(60,155),ylim=c(0,65))+

ggtitle("某公司2015~2016年度营业状况分布图")+

guides(fill=guide_legend(reverse=TRUE,title=NULL))+

theme_map() %+replace%

theme(title=element_text(family="myfont"),legend.position=c(0.88,0.3),legend.text.align=1)

ok,这次成功了,但是我放弃了使用coord_map()空间投影参数,而是使用了普通的笛卡尔二维坐标。

在ggplot2版面中制作数据对图,想要对版面进行有效的控制,需将标度范围的调整参数在坐标系内进行限定,否则会出现错乱,而是在限定范围的同时可能需要放弃使用空间投影(有没有更好的解决方案,目前还未知,留待以后解决)。

感谢你能够认真阅读完这篇文章,希望小编分享的"ggplot2中怎么自定义数据地图版面范围"这篇文章对大家有帮助,同时也希望大家多多支持,关注行业资讯频道,更多相关知识等着你来学习!

范围 地图 参数 方案 版面 数据 公司 分布图 年度 标度 状况 营业 调整 坐标 篇文章 中国 世界 世界地图 空间 系统 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 上海喔噻互联网科技有限公司 广州大一互联网络科技有限公司 互联网科技未来 互联网络科技有限公司 亿策互联网科技 南京欣网互联网科技 奔汉互联网科技 融贸通互联网科技 互联网科技公司名称 衡水科技产业互联网平台 科技与互联网的利与弊 互联网科技中介 字节跳动和互联网科技 荆州市昕露互联网络科技有限公司 互联网科技如何创业 宇信科技在杭州互联网排第几 本届互联网大会上的黑科技 风投北京互联网科技 东风日产互联网科技公司叫什么 互联网 科技节活动 微视频大赛 广东万易互联网科技有限公司惠州分公司 麻工互联网科技 广州互联网科技公司 深圳前海聚择互联网科技有限公司 湖南诚度互联网科技有限公司 栖莱科技互联网股份有限公司 互联网科技与大数据专业 国大互联网教育科技有限公司薪资 广东鹅鹅鹅互联网科技有限公司 互联网科技品牌
0