首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

在ggplot map中按类型重新排序sf多边形

,可以通过以下步骤实现:

  1. 首先,确保已经安装了ggplot2sf这两个R语言包,可以使用以下命令进行安装:
代码语言:txt
复制
install.packages("ggplot2")
install.packages("sf")
  1. 在R中导入所需的包:
代码语言:txt
复制
library(ggplot2)
library(sf)
  1. 读取包含多边形数据的Shapefile文件,使用read_sf()函数:
代码语言:txt
复制
data <- read_sf("path/to/shapefile.shp")

其中,path/to/shapefile.shp是你本地存储Shapefile文件的路径。

  1. 对数据进行重新排序,首先通过mutate()函数创建一个新的变量,该变量用于指定重新排序的顺序:
代码语言:txt
复制
data <- data %>%
  mutate(reorder_var = factor(type, levels = c("type1", "type2", "type3")))

上述代码中,假设type是表示多边形类型的变量,你可以根据实际情况修改该变量名以及类型的顺序。

  1. 使用ggplot()函数创建绘图对象,并使用geom_sf()函数绘制多边形地图。通过aes()函数将新的排序变量(reorder_var)映射到颜色或其他美观的可视化属性上:
代码语言:txt
复制
ggplot() +
  geom_sf(data = data, aes(fill = reorder_var)) +
  scale_fill_manual(values = c("type1" = "red", "type2" = "blue", "type3" = "green"))

上述代码中,假设你将重新排序的变量映射到填充颜色,你可以根据需要调整颜色值。

  1. 可以进一步添加图例、坐标轴和其他细节,以美化图表。例如,使用labs()函数添加标题和轴标签:
代码语言:txt
复制
ggplot() +
  geom_sf(data = data, aes(fill = reorder_var)) +
  scale_fill_manual(values = c("type1" = "red", "type2" = "blue", "type3" = "green")) +
  labs(title = "Reordered SF Polygons", x = "Longitude", y = "Latitude")

你可以根据具体需求添加其他图表元素。

至于腾讯云相关产品和产品介绍链接地址,可以根据具体情况选择适合的产品,比如存储相关可以考虑腾讯云的对象存储 COS,具体链接地址请参考腾讯云官方文档或者官网。注意根据要求,这里不提供云计算品牌商的名称。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

rgdal包readOGR使用

映射层是每一个行政区域的多边形边界点,按照order排序,按照group分组,多边形分界点信息是一个多层嵌套的list结构,但我们可以通过fortity函数将其装换位数据框。...SF数据特点 最大特点hi是,他将每一个行政区划所对应的几何边界点封装成一个list对象,这条记录就像其他普通的文本记录一样,被排列在对应行政区划描述单元 使用sf包的st_read()函数导入的空间数据对象完全是一个整齐的数据结构...,这些行列包括了描述层和几何多边形的边界点信息。...SF对象我们只需要指定一次合并即可,即将描述层和你的分析数据合并,使用sf::st_read()函数读取数据即可得到SF数据对象,其为data.frame对象类型。...<-join(polydata,data1,by='id',type='full')#此时data_map包括9列 ggplot()+ geom_polygon(data=data_map, aes

5.7K20
  • R语言可视化——关于ggplot所支持的数据地图素材类型

    而对应的几何映射层,是每一个行政区域的多边形边界点,这些边界点按照order排序,按照group分组。...而sf对象将这种控件数据格式件进行了更加整齐的布局,使用st_read()导入的空间数据对象完全是一个整齐的数据框,拥有整齐的行列,这些行列包含着数据描述和几何多边形的边界点信息。...然后如果是第一种sp格式的话,制作ggplot2地图过程,我们需要分离描述层和几何映射层,并为两者指定连接的id(主键),如果算上你要将自己的业务数据和描述层数据合并这一动作的话,那么总共我们需要合并两次数据...然而在sf对象我们仅需指定一次合并即可,即描述层和业务指标数据的合并。...)+geom_ploygon() ggplot(china_map1)+geom_sf() ggplot(china_map1)+gg_map() 可以调用在线地图库素材: ggmap() leaflet

    2.3K41

    左手用R右手Python系列12——空间数据可视化与数据地图

    以前我一直觉得Python的绘图工具与R语言ggplot2比起来,不够优雅,这也是我一直坚定的选择使用R+ggplot2深入的学习数据可视化的原因,ggplot2坐标系的整合与兼容性和扩展性上确实技高一筹...我以前写过大量ggplot2空间数据可视化的文章,但是那些大多是基于shp数据源,和ggplot2的geom_ploygon或者gemo_map函数来制作的。 对,你没看错,真的有这种操作~ ?...(替代方案,使用rgdal的readORG函数或者sf的st_read函数) use rgdal::readOGR or sf::st_read china_map1<-fortify(china_map...) #从SP(空间数据对象)剥离地理多边形边界点信息和多边形属性信息 x<-china_map@data xs<-data.frame(id=row.names(x),x) china_map_data...ggplot() + geom_sf(data=china_map,aes(fill=value)) ? 所以使用sf提供的新技术,制作数据地图通常仅需以上几步。任务量大大缩减。

    2.1K40

    空间地理数据可视化之 ggplot2 包及其拓展

    ) map <- st_as_sf(map) ggplot(map) + geom_sf(aes(fill = SID74)) + theme_bw() 1974 年北卡罗来纳州婴儿猝死的地图 2....更多设置 ggplot() ,离散变量的默认色标是 scale_*_hue() ,这里 * 表示颜色(为点和线等特征着色)或填充(为多边形或柱状图着色); scale_*_grey() 用来改变灰色颜色的默认比例...下图是用 viridis 包的 scale_*_distiller() 函数和 ggplot() 函数绘制的 1974 年北卡罗来纳州婴儿猝死的地图: 例子 : library(viridis) map...<- st_as_sf(map) ggplot(map) + geom_sf(aes(fill = SID74)) + scale_fill_viridis() + theme_bw() viridis...library(plotly) library(ggplot2) library(viridis) library(sf) map <- st_as_sf(map) p2 <- ggplot(map

    3.1K30

    如何处理地图投影转换

    之前在学习ggplot2的geom_polygon()图层制作地图图形时,从来没有苦恼过投影的问题,因为coord_map()中直接给出投影转换的参数,如果要制作基于国家的地图,直接赋值为polyconic...需要花大把的时间导入这些数据模型,并从模型抽取出geom_polygon所支持的点、线、多边形数据,才能按照ggplot2所规范的可视化语法进行制图。...R语言中支持GIS数据模型的包一共有两个:sp包和sf包,旧版的ggplot2,geom_polygon高度依赖从sp导入的数据对象(虽然也可以从sf获取)。...但是这种情况马上会随着sf包的逐步完善以及ggplot2和sf包的进一步融合而大有改观。 最新版的ggplot2(github上面的开发版)已经内置了geom_sf()图层。...由于投影后的投影坐标系已经被投影算法转换,所以使用geom_text等图层函数时,务必要使用与几何对象投影一致的经纬度点,这里使用sf的点中心计算函数最为快捷。

    1.8K30

    一篇小短文助你打开数据可视化的任督二脉!

    本文主要讨论ggplot2是如何通过颜色信号来对多边形进行填充的底层理念,这也是想要进阶R语言数据可视化过程必须搞明白的关键环节。...ggplot2所有图层对象,geom_ploygon()几何图层对象最为复杂,也最为特殊: 复杂在哪儿呢?...这种几何对象所定义的多边形(特别是地理信息数据里面),领土边界是基于行政区划、行政区划再细分为单个多边形(也就是group),单个多边形又是一组经纬度坐标点构成(按照order排序)。...这个问题是个好问题,一语的,确实,order变量十分重要,但是通常获取的地理信息文件,order变量是已经按照group分组变量排序过的,即通常所用到的地理信息数据框,所有的边界点经纬度信息,是先按...没有考虑order并不代表,order不重要,事实上,order是非常重要的一个变量,只是它已经被提前考虑过了(因为太重要了),所以我们需要再考虑它,但是倘若数据顺序因为某种原因而被打乱了,那么我们需要自己重新排序

    1.4K40

    一个R语言中操纵矢量空间数据的标准化工具—sf

    使用ggplot2绘图时,先利用fortify函数将sp对象转化成数据框(该数据框里存放着每一个多边形构成点的信息),以此来尝试“简化”多边形对象,这样既不优雅,也不高效。...st_join可以基于空间类型连接成对的表格。 sf包的一般方法已经展示在上面表格2了,其中很多方法主要服务于矢量空间数据的创建、抽取、转换,当然也有很函数属于不经常用到的低频函数。...操纵工具 sf的开发过程,为了使新的数据结构与tidyverse能够较好的协同工作,投入了大量的精力。...保持函数类型安全,支持空几何体和空列表,并通过提供缩放和移动多边形选项来创造性地完成了重载操作。...实现sf过程,维护了几个经过良好验证的概念(几何对象与属性的分离),为sf创建了新的连接(dplyr、ggplot2、空间数据库),并探讨了新的概念(单位、空间索引等)。

    4.3K51

    R数据科学|5.5.1 内容介绍

    如何进行这种可视化表示同 样取决于相关变量的类型。...5.5.1 分类变量与连续变量 我们经常需要探索连续变量的分布,分类变量的分组显示连续变量分布的常用的两种方式是: 改变 y 轴的显示内容,不再显示计数,而是显示密度。...密度是对计数的标准化,这样每个频率多边形下边的面积都是 1: data = diamonds, mapping = aes(x = price, y = ..density..) ) + geom_freqpoly...因为很多分 类变量并没有这种内在的顺序,所以有时需要对其重新排序来绘制信息更丰富的图形。重新排序的其中一种方法是使用 reorder() 函数。...你可能很想知道公路里程因汽车类别的不同会有怎样的变化,可以基于 hwy 值的中位数对 class 进行重新排序ggplot(data = mpg, mapping = aes(x = class,

    58730

    一个震撼的交互型3D可视化R包 - 可直接转ggplot2图为3D

    分类 scale_fill_viridis_c(option = "A") # 将map颜色设置为“岩浆”色,简称为“A”,共有“A”,“B”,“C”,“D”和“E”五种;gg # 绘制2D图...# 如果缺失sf包,建议先安装 library(sf) nc = st_read(system.file("shape/nc.shp", package="sf"), quiet = TRUE) #加载包自带的数据...gg_nc = ggplot(nc) + # 加载North Carolina地图 geom_sf(aes(fill = AREA)) + # 绘制地理数据模型,sf对象,全称Simple feature...#该数据是我们常见的R的模拟数据 head(mtcars) mtcars_gg = ggplot(mtcars) + geom_point(aes(x=mpg,color=cyl,y=disp)...该网站包含所有`rayhader`功能的文档和示例,可以`Github`页面上找到实际的存储库。就让你静静的看我有多美! ? ? 想把其它图也用3D展示,可以拿下面的ggplot2系列绘图做例子。

    4.8K30

    用编程赋能工作系列——地理围栏的基本操作运算

    如下图所示,通过前期调研,假如你已经确认了目标分析区域如图中不规则多边形所示,通过地图围栏围栏可以拿到边界经纬度信息,然后需要甄别出待分析的原始数据,那些点是目标分析区域内部,并且单独摘出来进行更加细致的分析...这问题是主要操作难点,涉及到空间数据操纵,以下仍然是两个工具分别讲解: R语言中的处理方案: # 将围栏数据改造成R语言中sf包可识别的形式 # 因为原始围栏是一次将经维度顺序组合并一次拼接起来的,...所以需要使用简单的 # 程序转换为含经度、维度的数据框 library('sf') library('ggplot2') library('magrittr') library("leaflet") library...利用sf的点归属判别函数st_contains,把随机点都打上一个是否围栏内部的标签,方便之后呈现层进行区别填色。...使用Pythonshapely包(底层也是和R语言中的sf包基于相同的理论基础实现的)提供的点判别函数contains。

    2.8K30

    R语言可视化——多边形与数据地图填充

    ggplot函数中有一类特殊的图表类型叫做多边形,很难用传统的视角来定义它属于哪一类图表,因为它能够呈现信息多种多样。 特别是在做某些比较高阶的图表——地图时,这种多边形函数便能够大显神通。...之前本公众号所推送的所有涉及地图图表绘制所使用的技巧,几乎全部都依赖多边形函数的支持。...("c:/rstudy/wold_map/World_region.shp") 使用路径图进行区域轮廓描边: ggplot(world_map,aes(x=long,y=lat,group=group...使用多边形进行描边并填充:(多边形是可以进行线条与形状分别填色的) ggplot(world_map,aes(x=long,y=lat,group=group)) +geom_polygon(fill...map包是一个专门用来做地图的加载包,里面存有几个可以用的地图数据包: states<-map_data("world") #全球地图 ggplot(world,aes(long,lat,group=group

    1.7K40

    高阶可视化绘图系统:ggplot2入门

    几何对象(geometric):几何对象(geom)代表你图中实际看到的元素,如点、线、多边形等。 统计变换(statistics):统计变换(stat)是对数据进行的某种汇总。...我们通常使用的是笛卡尔坐标系,但也可以将其变换为其它类型,如极坐标和地图投影。 图层(Layer):图层的作用是生成图像上可以被人感知的图形。...数据(Data)和映射(Mapping) 前文已经提及ggplot2,数据集必须为数据框(data.frame)格式,并且可以通过%+%符号调整已有数据集。...ggplot()函数声明了全局数据和映射关系,在后续几何对象如未重新设定数据和映射关系,几何对象将沿用ggplot()声明的数据与映射关系; 当然几何对象可重新设定数据与映射关系,并作用于此几何对象...;对比12和图13,不论是ggplot函数定义color还是几何对象定义color,其具有相同的效果。

    1.6K10

    绘图技巧 | 双变量映射地图可视化绘制方法

    Map 绘制地图时,我们常常使用单一变量进行映射处理,当然,这样展示的结果可以很好的表现我们研究的特征(如收入、房价等)的变化情况或者具体的情况,如下图: ?...(注:以上双变量简介参考资料:Bivariate Choropleth Maps: A How-to Guide[1]) R-ggplot2+biscale 轻松绘制双变量映射地图 简单介绍完之后,接下来...<- albersusa::counties_sf(proj = "laea") usa_map <- ggplot() + geom_sf(data = country_sf,size=.125...接下来,我们将两种数据(地图数据+指标数据)根据fips编码进行合并,需要注意的是我们需要将地图文件fips列转换成字符串类型,详细代码如下: counties <- mutate(counties,...注意:红框的数据就是我们用于映射的数据集,接下来,我们进行可视化展示: 「可视化绘制」:在此之前,我们需将绘制数据使用sf::st_transform()进行投影转换,使其更好的展示美国地图,代码如下

    1.2K20
    领券