Loading [MathJax]/jax/input/TeX/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >专栏 >R-ggplot2 和rasterVis 实现空间栅格(Raster)数据的可视化绘制教程

R-ggplot2 和rasterVis 实现空间栅格(Raster)数据的可视化绘制教程

作者头像
DataCharm
发布于 2021-02-22 04:00:50
发布于 2021-02-22 04:00:50
7.3K12
代码可运行
举报
运行总次数:2
代码可运行

本期将推出一篇关于栅格(Raster)数据的R语言可视化的绘制教程,其目的也是为大家提供绘图思路。本期绘制的数据为30m的土地利用(land use)数据,具体区域为广州市。主要内容如下:

  • R-ggplot2 可视化绘制
  • R-rasterVis 可视化绘制
  • Arcgis 可视化结果展示

R-ggplot2 可视化绘制

由于对ggplot2的绘图体系还不是很了解,所以这一步花费很长时间,但也对ggplot2的绘图语法有了更深的理解。话不多说,我们直接上代码,如下:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
# Raster_data_Vis.R
library(ggplot2)
library(raster)
library(viridis)  
library(ggthemes) 
library(sf)

# 添加字体
windowsFonts(
   Cinzel = windowsFont("Cinzel"),#这里使用的是字体的主题名称
   Poppins = windowsFont("Poppins"),
   IBMPSBold = windowsFont("IBMPlexSans-Bold"),
   Roboto_Mono = windowsFont("Roboto Mono"),
   Open_Sans = windowsFont("Open Sans"),
   Open_Sans_ExtraBold = windowsFont("Open Sans ExtraBold"),
   Times_New_Roman = windowsFont("Times New Roman")
  )

#数据
datafold <- 'E:\\Data_ning\\RStudio projects\\guanzhoulanduse\\gzlu.tif'
test <- raster(datafold) 

#很关键的一步:将栅格数据转成可供ggplot2绘制的数据格式
test_spdf <- as(test, "SpatialPixelsDataFrame")
test_df <- as.data.frame(test_spdf)
# 赋值列名
colnames(test_df) <- c("value", "x", "y")

#开始绘图
land_use <- ggplot() +
    geom_raster(data = test_df , aes(x = x, y = y,fill = factor(value))) + 
    scale_fill_manual(name = "Category",values = classcolor,labels = landclass) +
    labs(x ='Longitude(E)',y="Latitude(N)",
       title = "Raster data Charts Exercise",
       subtitle = "land use data",
       caption = 'Visualization by DataCharm')+
    theme_bw()+
    theme(text = element_text(family = "Times_New_Roman",face='bold'),
          title = element_text(family = 'Times_New_Roman',size = 16,face = 'bold'),
          axis.text = element_text(family = 'Times_New_Roman',size = 12,face = 'bold'),  
          #修改刻度线内
          axis.ticks.length=unit(-0.22, "cm"),
          #设置刻度label的边距
           axis.text.x = element_text(margin=unit(c(0.5,0.5,0.5,0.5), "cm")), 
           axis.text.y = element_text(margin=unit(c(0.5,0.5,0.5,0.5), "cm"))
         )
land_use

可视化结果如下:

注意:

  • 在使用ggsave()保存成pdf文件时,有些字体将会消失,后续会解决此类问题。上面结果为png格式。

R-rasterVis 可视化绘制

在查阅相关资料时发现,绘制Raster数据时,也可采用R第三方拓展包 rasterVis 包进行快速绘制,绘制代码如下:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
library(raster)
library(rasterVis)

nlcd <- brick('E:\\Data_ning\\RStudio projects\\guanzhoulanduse\\gzlu.tif')
names(nlcd) = c('Gzland')
landclass <- c("Cropland", "Forest", "Grassland", "Shrubland", "Wetland", "Water", "Impervious surface", "Bareland")
classcolor <- c("#96298A", "#05AD27", "#EB6805", "#E6E8DF", "#2200FF", "#0D4763", "#DEE64C", "#4A150B")

nlcd2011 <- nlcd[[1]]
nlcd2011 <- ratify(nlcd2011)
# 
test <- levels(nlcd2011)[[1]]
test$landcover <- landclass
levels(nlcd2011) <- test

png(file = "F:\\DataCharm\\R-rasterVis\\guangzhou_landuse3.png", 
    height=nrow(nlcd2011), width=ncol(nlcd2011), res=500)
levelplot(nlcd2011, col.regions = classcolor, main = 'Guangzhou LandUse',
                  xlim=c(112.9, 114.2), ylim=c(22.4, 24))

dev.off()

可视化结果如下:

具体的其他图层属性设置,大家可以直接查看官网:rasterVis官网

Arcgis 可视化结果展示

前面介绍了两种代码可视化的绘制教程,其实最开始我是使用Arcgis进行可视化展示的,不得不说,Arcgis 还是 很强大方便的,但代码绘图有代码绘图的好,我们各取所需,这里只展示最终的制作结果:

注: 图中标题年份可能不正确,大家阅读时留意。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2020-10-18,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 DataCharm 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
1 条评论
热度
最新
请问一下用ggplot2画出来经纬度跟你的不一样,这个怎么调
请问一下用ggplot2画出来经纬度跟你的不一样,这个怎么调
回复回复点赞举报
推荐阅读
编辑精选文章
换一批
R-ggplot2 学术箱线图制作
之前有和群里的小伙伴讨论说"将之前Python-matplotlib 绘制的图用R-ggplot2重新绘制",也得到很多小伙伴的响应
DataCharm
2021/02/22
1.3K0
R-ggplot2 学术箱线图制作
R-ggspatial+ggplot2 实现带指北针和比例尺的空间地图绘制
继上次使用tmap包制作含有指北针(compass)和比例尺(scale bar)以及南海小地图的添加,详细内容分别见如下两篇文章:R-tmap 绘制带指北针和比例尺的空间地图和 R-tmap+grid 实现南海小地图的添加,得到了很多小伙伴的喜欢。虽然tmap包有着类似于ggplot2绘图语法,但对习惯使用ggplot2绘图的小伙伴怎不怎么友好。那么今天本期推文就使用 ggspatial 包实现指北针和比例尺的添加。主要涉及的知识点如下:
DataCharm
2021/02/22
2.8K0
R-ggspatial+ggplot2 实现带指北针和比例尺的空间地图绘制
R-ggplot2 学术散点图绘制
本期推文,我们使用 R-ggplot2 绘制学术拟合散点图,关注公众号并后台回复"资源分享"即可获取包括本篇教程的数据及其他绘图教程的Python代码和对应数据
DataCharm
2021/02/22
1.5K0
R-ggplot2 学术散点图绘制
R-ggplot2 绘制带颜色条的相关性散点图
一个月的备考终于结束了,公号的推文也会陆续进行原创推文制作,也希望大家继续支持哦!本期推文就介绍一篇关于使用ggplot2 绘制带有颜色映射的相关性散点图,本期涉及的知识点如下:
DataCharm
2021/02/22
2.5K0
R-ggplot2 绘制带颜色条的相关性散点图
R-ggplot2 标准中国地图制作
由于基础图表绘制系列推文还在加紧准备中,所以这期推文还是对一些感兴趣的图表进行绘制,这期涉及空间图表绘制,主要涉及知识点如下:
用户7010445
2020/11/24
2.9K0
R-ggplot2 标准中国地图制作
经济学人风格图表的Python-Seaborn和R-ggplot2绘制
最近着手准备使用R-ggpot2进行图表绘制,当然,Python可视化图表绘制也不能落下,所以,后面的推文我尽量会推出两种教程
DataCharm
2021/02/22
9420
经济学人风格图表的Python-Seaborn和R-ggplot2绘制
地图可视化绘制 | R-ggplot2 NC地图文件可视化
在R中读取nc文件,我们首选ncdf4包,其使用参考网址如下:https://rdrr.io/cran/ncdf4/。这里简单介绍下主要的函数:
数据森麟
2021/01/25
2.8K0
地图可视化绘制 | R-ggplot2 NC地图文件可视化
相关性分析你了解多少?可视化展示一下吧~~
今天小编介绍数据分析中最常用的方法之一相关性分析,该步骤多用于数据探索过程中,用于检测数据维度之间的相关密切程度。本文将通过以下内容介绍相关性分析:
DataCharm
2022/10/25
4.3K0
相关性分析你了解多少?可视化展示一下吧~~
地图可视化绘制 | R-ggplot2 NC地图文件可视化
在推出两期数据分享之后,获取数据的小伙伴们也知道,数据格式都是NetCDF(nc) 格式网格数据,虽然我在推文分享中说明使用Python、R或者GIS类软件都是可以进行 处理和可视化绘制的,但是,还是有小伙伴咨询使用编程软件Python或者R处理nc数据,正好也想分享一期关于nc网格数据的可视化绘制过程,这里我们使用R包进行nc数据的处理(Python处理较为简单,将放在空间插值系列的资料中,该部分正在加快进程中哦~~),主要涉及的知识点如下:
DataCharm
2021/02/22
2.4K1
地图可视化绘制 | R-ggplot2 NC地图文件可视化
R-ggplot2 基础图表绘制-散点图示例
前两期分别介绍了R-ggplot2 基础散点图R-ggplot2 基础图表绘制-散点图和 Python-seaborn基础散点图Python-seaborn 基础图表绘制-散点图 的绘制方法,较为系统的介绍了绘图的基础语法,也为一些绘图基础不是很好的小伙伴提供了参考方法,基础的讲过了,接下里我们将示例应用了啊(也是这个系列推文的流程啊:基础+示例演示),只为让你更好的掌握绘图知识点。本期的推文就使用R-ggplot2进行一个较为经典的图表仿制,也是自己一直想制作的图表。主要涉及的知识点如下:
DataCharm
2021/02/22
6140
R-ggplot2 基础图表绘制-散点图示例
绘图技巧 | 第七次全国人口普查数据还能这么玩!?技巧都在这了
今天小编就根据第七次全国人口普查数据进行一些可视化图表的绘制,涉及的知识点较为简单,主要就是一些细节上的定制化操作(推文中使用的数据免费获取方式见文末),主要内容包括:
DataCharm
2021/05/27
9480
R-ggdist - 分布和不确定性可视化
今天的推文给大家介绍一个我发现的比较优秀的一个可视化R包-ggdist包,这是一个非常优秀和方便的用于绘制 分布(distributions)和不确定性(uncertainty) 的可视化绘图包,详细介绍大家可以去官网查阅:ggdist官网。本期推文涉及的内容主要如下:
DataCharm
2021/02/22
7180
R-ggdist - 分布和不确定性可视化
R-ggplot2 空间绘图 - 房价气泡图的绘制
上篇原创推文使用了geopandas进行了房价分布的地图推文教程,本期我们将使用绘图功能更加强大的ggplot2 以及其推展包进行地图绘制和图表美化工作,主要涉及的知识点如下:
DataCharm
2021/02/22
1.4K0
R-ggplot2 空间绘图 - 房价气泡图的绘制
善用图片-你将有不一样的可视化效果
今天在查找资料时发现了一个超酷的R语言第三方颜色包 R-ghibli,目前可以直接通过 CRAN 安装的。官网(https://ewenme.github.io/ghibli/)所示的图例如下:
DataCharm
2021/02/22
4370
善用图片-你将有不一样的可视化效果
R-ggplot2 基础图表绘制-散点图
本期开始陆续推出基础图表的绘制推文教程,也算是自己的一个基础知识积累和巩固,希望和大家一同学习进步。这期的推文是关于散点图的绘制,主要知识点如下:
DataCharm
2021/02/22
1.2K0
R-ggplot2 基础图表绘制-散点图
超简单的置信区间拟合散点图绘制方法推荐~~
今天这篇推文小编写一些基础的内容:如何绘制在散点图上显示其线性模型线性模型的拟合结果及其置信区间。这里小编使用R和Python分别绘制,主要内容如下:
DataCharm
2022/10/25
3.5K0
超简单的置信区间拟合散点图绘制方法推荐~~
R语言可视化及作图7--ggplot2之标签、图例和标题绘制
geom_label可以使用fill对颜色进行填充,fontface设置字体,geom_text不能填充颜色
前端小tips
2021/12/08
5.7K0
R语言可视化及作图7--ggplot2之标签、图例和标题绘制
ggplot批量画图
可以发现,iris数据集中有5个变量,前4个变量为数值型(numeric),最后一个为字符型 (character)。
ruochen
2021/12/04
1.6K0
我汇总了韦恩图(Venn Diagram)所有绘制方法,推荐收藏~~
今天这篇推文小编就汇总一下有关Venn Diagram(韦恩图) 的绘制方法,主要内容包括:
DataCharm
2021/12/09
39.8K0
我汇总了韦恩图(Venn Diagram)所有绘制方法,推荐收藏~~
83-R可视化16-用showtext让R绘图认得中文及花里胡哨的字体
此外,对ggplot 中的字体进行一些设置,但这个family 特有限的,比如Times, Arial 这些比较标准的字体:
北野茶缸子
2022/02/08
1.2K0
83-R可视化16-用showtext让R绘图认得中文及花里胡哨的字体
推荐阅读
相关推荐
R-ggplot2 学术箱线图制作
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验