QGIS打印布局中绘制多个子图
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将图片导出

注:出于数据保密的原因,地图的各子图没有设置标题
参考
- https://www.youtube.com/watch?v=b14x69LqTZA&ab_channel=WiseGIS
- https://www.youtube.com/watch?v=r2EOUH5wsMQ&ab_channel=burdGIS
- https://www.youtube.com/watch?v=LB0OsU8cni8&ab_channel=WiseGIS
QGIS打印布局中绘制多个子图的更多相关文章
- python使用matplotlib在一个图形中绘制多个子图以及一个子图中绘制多条动态折线问题
在讲解绘制多个子图之前先简单了解一下使用matplotlib绘制一个图,导入绘图所需库matplotlib并创建一个等间隔的列表x,将[0,2*pi]等分为50等份,绘制函数sin(x).当没有给定x ...
- android:布局、绘制、内存泄露、响应速度、listview和bitmap、线程优化以及一些优化的建议!
1.布局优化 首先删除布局中无用的控件和层级,其次有选择地使用性能较低的viewgroup,比如布局中既可以使用RelativeLayout和LinearLayout,那我们就采用LinearLayo ...
- CSharpGL(6)在OpenGL中绘制UI元素
CSharpGL(6)在OpenGL中绘制UI元素 2016-08-13 由于CSharpGL一直在更新,现在这个教程已经不适用最新的代码了.CSharpGL源码中包含10多个独立的Demo,更适合入 ...
- 响应式布局中的CSS相对量
一个响应式布局,要能够根据设备屏幕尺寸的改变,动态的调整页面内容,展现不同的设计风格. 在进行响应式的 CSS 代码编写过程中,经常会用到一些相对尺寸,以达到相对定位的目的.例如,常见的响应式布局中需 ...
- C# 如何在PDF中绘制不同风格类型的文本
通过对控件Spire.PDF的测试,我们可以创建PDF文件并向文档中绘制文本.图片.表格.图形等内容,其中,对于绘制文本这一部分,Spire.PDF提供了三种字体类型来绘制文本,即: Standard ...
- Android为TV端助力 布局、绘制、内存泄露、响应速度、listview和bitmap、线程优化以及一些优化的建议!
1.布局优化 首先删除布局中无用的控件和层级,其次有选择地使用性能较低的viewgroup,比如布局中既可以使用RelativeLayout和LinearLayout,那我们就采用LinearLayo ...
- Android面试收集录12 View测量、布局及绘制原理
一.View绘制的流程框架 View的绘制是从上往下一层层迭代下来的.DecorView-->ViewGroup(--->ViewGroup)-->View ,按照这个流程从上往下, ...
- IOS自己主动布局中的浮动布局(6)----MyFloatLayout横空出世
https://github.com/youngsoft/MyLinearLayout 前言 在MyLayout的6大布局中,每种布局都有不同的应用场景. 且每种布局的子视图的约束机制不一样:线性布局 ...
- Android_(控件)使用自定义控件在屏幕中绘制一条虚线
在Android屏幕中绘制虚线,最通用的是自定义控件DashedLine,再将自定义控件放入xml布局中 运行截图: 程序结构 package com.example.asus.gary_042; i ...
随机推荐
- Fiddler手机抓包配置指南
前言: 对于开发.测试而言,抓包工具绝对是我们日常测试找bug的必备神器.今天主要介绍的是如何配置Fiddler抓取移动端app请求.首先Fiddler是一个http协议调试代理工具,它能够记录并检查 ...
- 自定义Nuget包的技巧一二
背景: 在项目中, 通常会拆分成核心库(Core)和应用(App)两个部分.核心库由专人维护, 不同的App是不同的团队,但都引用了核心库.当核心库需要升级更新时,有的应用会更新,有的不会--可能是没 ...
- 1、JVM体系结构
1.JVM跨语言的平台 随着java7的正式发布,java虚拟机的设计者们通过JSR-292规范基本实现在java虚拟机平台上运行非java语言编写的程序. java虚拟机根本不关心运行在其内部的程序 ...
- 『心善渊』Selenium3.0基础 — 11、Selenium对元素常用操作
目录 1.Selenium对元素常用操作 2.Selenium对元素的其他操作 1.Selenium对元素常用操作 操作 说明 click() 单击元素 send_keys() 模拟输入 clear( ...
- 20、wordpress博客url静态化
20.1 wordpress没有实现伪静态时的网页: 20.2进入wordpress后台: 1.设置 2.固定链接 3.自定义链接 /archives/%post_id%.html #%post_id ...
- 企业实施CRM系统 创造更多利润 - Zoho CRM
对企业来说,客户关系是一种投资.我们都知道企业的资源是有限的,因此必须要将这些有限的资源投入到能够带来持续价值的客户身上.而只有良好的客户关系才能够提高客户的忠诚度,多次购买甚至溢价购买企业的产品,持 ...
- 使用RSA和DES保护的Socket通信
基本要求:将DES加密算法应用于网络通信,使用RSA算法自动分配密钥,设计好界面,可验证自动生成的密钥和加解密正确的结果. 具体实现要求:客户端和服务器建立连接后,客户端生成一个随机DES密钥;服务器 ...
- 用阻塞队列实现一个生产者消费者模型?synchronized和lock有什么区别?
多线程当中的阻塞队列 主要实现类有 ArrayBlockingQueue是一个基于数组结构的有界阻塞队列,此队列按FIFO原则对元素进行排序 LinkedBlockingQueue是一个基于链表结构的 ...
- Linux导出未越狱Iphone10.3-QQ聊天记录
起因 手机当中的聊天记录已经快两年没有备份了,生怕某天QQ版本升级中丢失掉这些聊天记录,所想将这两年的聊天记录保存下来 查找了好多资料,结果10.3以后,IOS改变了策略,貌似不允许通过以前方法导出了 ...
- 单片机与PLC的区别?
单片机顾名思义集成在一个芯片内的计算机系统,又叫单片微控制器,英文:mcu,具有计算机的全部功能.PLC是英文Programmable Logic Controller的简称,翻译过来就是可编程逻辑控 ...