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 ...
随机推荐
- Java安全之Weblogic内存马
Java安全之Weblogic内存马 0x00 前言 发现网上大部分大部分weblogic工具都是基于RMI绑定实例回显,但这种方式有个弊端,在Weblogic JNDI树里面能将打入的RMI后门查看 ...
- UGUI ScrollRect 鼠标滑动灵敏度调节
- SpringCloud的Ribbon自定义负载均衡算法
1.Ribbon默认使用RoundRobinRule策略轮询选择server 策略名 策略声明 策略描述 实现说明 BestAvailableRule public class BestAvailab ...
- linux学习之路第三天
开机,重启和用户登陆注销 关机&重启命令 shutdown shutdown -h now :表示立即关机 shutdown -h 1 :表示一分钟后关机 shutdown -r now :表 ...
- XCTF re-100
一.无壳并拉入ida64静态调试(注释说的很明白了) 二.confuseKey是个关键函数,进入看看 发现就是将我们所输入的字符串分割,并把顺序调换了,调回来就是我们的flag. 三.flag: 提交 ...
- [Vue入门及介绍,基础使用、MVVM架构、插值表达式、文本指令、事件指令]
[Vue入门及介绍,基础使用.MVVM架构.插值表达式.文本指令.事件指令] 1)定义:javascript渐进式框架 渐进式:可以控制一个页面的一个标签,也可以控制一系列标签,也可以控制整个页面 ...
- NSDate小结
dateFormat用法: y - 年 2013年,yyyy=2013,yy=13 M - 月 3月,M=3,MM=03,MMM=Mar,MMMM=March D - 一年中的第几天 d - 一月中的 ...
- 「AGC029C」Lexicographic constraints
「AGC029C」Lexicographic constraints 传送门 好像这个题非常 easy. 首先这个答案显然具有可二分性,所以问题转化为如何判定给定的 \(k\) 是否可行. 如果 \( ...
- 用Python分析下王小波与李银河写情书最爱用哪些词
作家王小波其实也是我国最早期的程序员,突发奇想,王小波写情书最喜欢用哪些词呢?用Python词云分析下! 直接上代码吧,有注释很好理解.输出的图片设置的比较大,所以运行的比较慢,可以适当把图片尺寸改小 ...
- 用 SwiftUI 五天组装一个微信
GitHub 链接:SwiftUI-WeChatDemo 效果图 实装内容 4 个 Tab 页面 + 聊天界面,使用纯 SwiftUI 搭建而成 应用启动界面 Launch Screen 国际化及应用 ...