QGIS如何绘制多图

数据准备

这是一份英国大曼彻斯特地区的数据,里面包含了教育、收入、人口密度、绿地比例、城市比例等数据,我们准备把这些数据在地图上呈现出来,为此,我们需要做在地图中绘制6幅子图,这里的子图类似于matplotlib中的subplot,就是在一幅大的地图中又采用多幅小地图来进行表现。

图层配置

图层分组

图层分组这个设置的作用,可以说是类似于ArcGIS中的DataFrame,通过分组Group来管理不同图层的显示,这里需要做6幅子图,所以将地图分为6个组,可以通过add group 的方式,新建6个分组,然后把数据加载到不同的组别上。

符号分级

符号分级显示是每一GISer最基本的技能,这里就不多赘述,一般通过【properties】->【symbology】即可对图层符号进行分级显示

新建地图布局

ArcGIS是通过布局视图的方式进行地图的绘制,而QGIS则需要通过新建一个地图布局的方式来进行地图的绘制,在这个布局容器的基础上可以添加地图、比例尺、图例、指北针、文本、表格、甚至是图片。

PS: 新版的ArcGIS Pro也是基于地图布局的方式进行地理绘图的

具体的构建方式如下,首先在QGIS的主界面上点击【 project 】->【new print layout】 即可新建一个布局容器

Guider 设置辅助线

在进行地图绘制之前呢,可以对地图提前设置布局,绘制参考线,后面添加地图、图例过程中就不用担心对齐的问题了

add map 添加地图

接下来,就来到了绘制地图最重要的一步,添加地图,通过【add map 】可以将地图子图添加到布局容器中,添加完毕后,通过地图的【item properties】可以设置其属性,调整地图的显示,可以通过【Scale】固定显示比例尺,通过【Position and Size 】-> 【width】、【 height】 规定地图的高度和宽度,【Frame】设置地图的外框显示等。

设置完了上述的属性后,我们需要对需要显示的图层进行设置,通过【Layer】 ->【Lock Layer】、【Lock styles for layers】来锁定我们的图层,当我们选择了这个选项后,无论我们在主窗口中如何调整图层的显示,布局容器中的图层均不在产生变化。

这样,我们需要显示哪个图层组,就先把哪个图层组在主窗口中打钩选中显示出来,然后通过添加地图项的方式加载到布局容器中并锁定图层,这样每个图层组就和每一个地图子图对应起来。这样每个地图子图中的地图不会随着主窗口显示的变化而变化,从而达到制图的目的。

add legend 添加图例

首先,通过【add legend】即可向布局容器中添加图例项,但是这样添加的图例项是包含所有组别的图例,在视图中会占据很大的面积,我们每一个子图只需要其对应组别的图例即可,因此,我们通过取消【auto update】使得我们可以自由的删除、编辑不需要的图例项。

接下来,对图例格式进行设置,一般设置label的字体,字号,项目之间的间距,符号的高度、宽度即可

接下里,修饰图例,删除图例中不需要的部分,隐藏标题和组名,右键点击组名或标题名,选择【 hidden】,完成图例的设置

最后,我们可以复制已经设置好的图例应用到其余图层

add North Arrow 添加指北针

通过【add North Arrow】添加指北针到布局容器中,当然,其他的如比例尺、标题文本等也可以进行添加,这里就不一一演示添加。

导出地图

将图层调整完毕后,可以通过Layout Export to PDF /Export to Image将图片导出

注:出于数据保密的原因,地图的各子图没有设置标题

参考

  1. https://www.youtube.com/watch?v=b14x69LqTZA&ab_channel=WiseGIS
  2. https://www.youtube.com/watch?v=r2EOUH5wsMQ&ab_channel=burdGIS
  3. https://www.youtube.com/watch?v=LB0OsU8cni8&ab_channel=WiseGIS

QGIS打印布局中绘制多个子图的更多相关文章

  1. python使用matplotlib在一个图形中绘制多个子图以及一个子图中绘制多条动态折线问题

    在讲解绘制多个子图之前先简单了解一下使用matplotlib绘制一个图,导入绘图所需库matplotlib并创建一个等间隔的列表x,将[0,2*pi]等分为50等份,绘制函数sin(x).当没有给定x ...

  2. android:布局、绘制、内存泄露、响应速度、listview和bitmap、线程优化以及一些优化的建议!

    1.布局优化 首先删除布局中无用的控件和层级,其次有选择地使用性能较低的viewgroup,比如布局中既可以使用RelativeLayout和LinearLayout,那我们就采用LinearLayo ...

  3. CSharpGL(6)在OpenGL中绘制UI元素

    CSharpGL(6)在OpenGL中绘制UI元素 2016-08-13 由于CSharpGL一直在更新,现在这个教程已经不适用最新的代码了.CSharpGL源码中包含10多个独立的Demo,更适合入 ...

  4. 响应式布局中的CSS相对量

    一个响应式布局,要能够根据设备屏幕尺寸的改变,动态的调整页面内容,展现不同的设计风格. 在进行响应式的 CSS 代码编写过程中,经常会用到一些相对尺寸,以达到相对定位的目的.例如,常见的响应式布局中需 ...

  5. C# 如何在PDF中绘制不同风格类型的文本

    通过对控件Spire.PDF的测试,我们可以创建PDF文件并向文档中绘制文本.图片.表格.图形等内容,其中,对于绘制文本这一部分,Spire.PDF提供了三种字体类型来绘制文本,即: Standard ...

  6. Android为TV端助力 布局、绘制、内存泄露、响应速度、listview和bitmap、线程优化以及一些优化的建议!

    1.布局优化 首先删除布局中无用的控件和层级,其次有选择地使用性能较低的viewgroup,比如布局中既可以使用RelativeLayout和LinearLayout,那我们就采用LinearLayo ...

  7. Android面试收集录12 View测量、布局及绘制原理

    一.View绘制的流程框架 View的绘制是从上往下一层层迭代下来的.DecorView-->ViewGroup(--->ViewGroup)-->View ,按照这个流程从上往下, ...

  8. IOS自己主动布局中的浮动布局(6)----MyFloatLayout横空出世

    https://github.com/youngsoft/MyLinearLayout 前言 在MyLayout的6大布局中,每种布局都有不同的应用场景. 且每种布局的子视图的约束机制不一样:线性布局 ...

  9. Android_(控件)使用自定义控件在屏幕中绘制一条虚线

    在Android屏幕中绘制虚线,最通用的是自定义控件DashedLine,再将自定义控件放入xml布局中 运行截图: 程序结构 package com.example.asus.gary_042; i ...

随机推荐

  1. Linux 中使用 QT Charts 显示温度传感器

    前一篇笔记中实现了QT的Label控件显示CPU的温度,只能显示当前的温度,并不能反映CPU温度的变化情况,现在来实现使用QT Charts的曲线图实现一个实时曲线来显示CPU的温度. 添加对Qt C ...

  2. 详解C++中继承的基本内容

    有些类与类之间存在特殊的关系,有共性也有特性,比如动物类可以细分为猫,狗等.下级别的成员除了拥有上一级的共性,还有自己的特性,这个时候就可以考虑继承的技术,减少重复代码. 一.继承中的对象模型 1.1 ...

  3. 10、基本数据类型(set)

    10.1.集合: 1.集合元素用大括号括起来,用逗号分割每个元素 2.集合的特点: (1)集合元素的数据类型只能是不可变数据类型,"列表"."字典"." ...

  4. Spring:Spring-IOC容器、DI依赖注入简介

    Spring容器到底是什么? 从概念上讲:Spring 容器是 Spring 框架的核心,是用来管理对象的.容器将创建对象,把它们连接在一起,配置它们,并管理他们的整个生命周期从创建到销毁. 从具象化 ...

  5. 《Do Neural Dialog Systems Use the Conversation History Effectively? An Empirical Study》

    https://zhuanlan.zhihu.com/p/73723782 请复制粘贴到markdown 查看器查看! Do Neural Dialog Systems Use the Convers ...

  6. Spring 的循环依赖问题

    什么是循环依赖 什么是循环依赖呢?可以把它拆分成循环和依赖两个部分来看,循环是指计算机领域中的循环,执行流程形成闭合回路:依赖就是完成这个动作的前提准备条件,和我们平常说的依赖大体上含义一致.放到 S ...

  7. QT. 学习之路 二

    Qt 的信号槽机制并不仅仅是使用系统提供的那部分,还会允许我们自己设计自己的信号和槽. 举报纸和订阅者的例子:有一个报纸类 Newspaper,有一个订阅者类 Subscriber.Subscribe ...

  8. 【系统配置】Ubuntu和Windons系统安装配置深度学习环境

    Ubuntu系统 1.备份 在服务器上整个装系统之前,需要做好一个工作,也就是相关重要数据的备份,这里主要是将固态中的数据备份到机械硬盘或移动硬盘里,可能在备份的过程中会遇到无法写入的问题,是因为文件 ...

  9. 微信小程序云开发-数据库-商品列表数据跳过N条数据

    一.WXML实现 在wxml文件中添加对应链接,点击链接绑定事件skipGoods. 二.js实现 js文件中写skipGoods()函数,实现跳过2条数据的功能.

  10. CF896D Nephren Runs a Cinema

    CF896D Nephren Runs a Cinema 题意 售票员最开始没有纸币,每次来一个顾客可以给她一张.拿走她一张或不操作.求出不出现中途没钱给的情况 \(n\) 名顾客后剩余钱数在 \(l ...