使用QGIS製作面量圖
文章推薦指數: 80 %
本教學將一步一步帶領讀者使用開源GIS軟體— QGIS,製作面量圖。
面量圖是主題地圖的一種,其製作方法是根據統計數值的多寡來將不同的地理區域上色,如此可有效呈現地理 ...
Published
LinkedwithGitHub
Like
Bookmark
Subscribe
---
title:'使用QGIS製作面量圖'
disqus:hackmd
---
使用QGIS製作面量圖
===
##大綱
[TOC]
##內容說明
本教學將一步一步帶領讀者使用開源GIS軟體—QGIS,製作面量圖。
面量圖是主題地圖的一種,其製作方法是根據統計數值的多寡來將不同的地理區域上色,如此可有效呈現地理區域間目標數值的分布情形,常使用於資料視覺化的各種應用場合,例如:縣市長全國選舉時用以呈現各縣市的勝選政黨。
本教學包括下列各點:
1.使用QGIS開啟shapefile檔。
2.插入以逗號分隔檔(.csv)存在的統計資料。
3.進行「資料表連接(tablejoin)」,將圖徵與統計資料連結起來。
4.調整面量圖參數。
5.出圖設定。
##教學
###安裝QGIS3.X版
製作此指南時,我安裝的QGIS版本號為3.4,理論上3.X版本都可以適用此指南。
請自[QGIS官網](https://qgis.org/en/site/)下載軟體,並依照指示安裝。
![](https://i.imgur.com/K7RrAN9.png)
▲安裝好後,預設在「開始」選單中會出現這些捷徑。
點選「QGISDesktop3.4.3」,開啟QGIS主程式。
![](https://i.imgur.com/mPgB6sy.png)
▲載入主程式的畫面。
QGIS以專案(project)來管理每一次的地理分析作業,可以想像成每一次開啟新的專案,就等同開始一份新的專題研究。
![](https://i.imgur.com/MySPSEI.png)
▲初始介面如上,中間會顯示曾經開啟過的專案。
###插入向量圖層
![](https://i.imgur.com/gjo1D5s.png)
▲ 點選「Project/New」,開啟新專案。
![](https://i.imgur.com/Z62pFMw.png)
▲ 這是新專案的介面。
![](https://i.imgur.com/xki30p5.png)
▲ 點選「Layer/AddLayeer/AddVectorLayer」,載入Shapefile。
![](https://i.imgur.com/ljrFvM3.png)
▲ 依序設定欲載入的Shapefile:
1.選擇「File」。
2.選擇編碼格式,一般會是「UTF-8」,但若是台灣產出的Shapefile檔,可能會使用「Big-5」。
3.選擇檔案位置。
我會建議將所有專案會用到的圖資都放在同一個資料夾內以便搜尋,除非檔案很大,不方便移動。
4.點選「Add」,加入圖層。
![](https://i.imgur.com/VqVNE0m.png)
▲ 順利載入Shapefile檔。
![](https://i.imgur.com/Y1aRgDq.png)
▲ 在左下角的「Layer」選單中,左鍵點選剛才加入的圖層,然後點右鍵,在選單中點選「OpenAttributeTable」,開啟屬性資料表。
![](https://i.imgur.com/zto1HPC.png)
▲ 順利開啟屬性資料表。
![](https://i.imgur.com/kZ09sDw.png)
▲ 上方會顯示該Shapefile檔的欄位名稱。
###修改特定欄位
![](https://i.imgur.com/xWPIQ4g.png)
▲ 點選屬性資料表上方,左邊第一個按鈕「Toggleeditingmode」,開啟編輯模式。
![](https://i.imgur.com/RJ1FMDn.png)
▲ 左鍵雙擊特定欄位,可以修改該欄位內容。
![](https://i.imgur.com/lsnAS4M.png)
▲ 修改後,再次點選「Toggleeditingmode」,QGIS會詢問是否要儲存剛才的變更。
**注意**此步驟會直接修改Shapefile檔的內容,建議每次進行新專案時先行備份新的Shapefile檔,利用新建立的檔案進行GIS分析。
###插入逗號分隔檔圖層
![](https://i.imgur.com/i0H3S4j.png)
▲透過文本編輯器,我們可以先行確認.csv檔中欄位的名稱及其對應的資料。
在範例中,第二欄(Third_Name)為我們要用來連結兩資料表的主鍵(Key)。
![](https://i.imgur.com/1cAUvgt.png)
▲點選加入逗號分隔檔的圖層。
![](https://i.imgur.com/GHqvLNh.png)
▲依照數字順序依序選擇檔案:
1.選擇要插入的.csv檔。
2.選擇編碼,一般而言是UTF-8(有時是Big5,可以從下方的預覽功能中看到文字有無正常顯示。
)
3.選擇.csv格式
4.勾選「此檔無地理資訊」。
5.點選「Add」加入圖層,然後點選「Close」關閉視窗。
![](https://i.imgur.com/heWfidu.png)
▲完成後可以看到資料表格已經順利讀入QGIS。
###資料表連結
![](https://i.imgur.com/NTfQvka.png)
▲點選「Processing/Toolbox」。
![](https://i.imgur.com/Ko5qDiM.png)
▲點選設定。
![](https://i.imgur.com/m1lFXLc.png)
▲勾選「Processing/General/Usefilenameaslayername」,以方便之後步驟進行。
勾完後點選下方的「OK」。
![](https://i.imgur.com/kfqJbIe.png)
▲在ProcessingToolbox中開啟「join」功能。
1.搜尋「join」。
2.找到「Vectorgeneral/Joinattributebyfieldvalue」,雙擊左鍵打開。
![](https://i.imgur.com/PPKtCTa.png)
▲設定資料表連結的選項。
1.選擇具地理資訊的圖層(即A檔)。
2.選擇該圖層中的主鍵欄位。
3.選擇具統計資料的.csv檔(即B檔)。
4.選擇該圖層中的主鍵欄位。
![](https://i.imgur.com/vqURkEX.png)
▲設定連結好的資料表的存檔格式,請點選「SavetoGeoPackage...」。
接著依照彈出的視窗設定檔名及圖層名,並按下「Run」。
![](https://i.imgur.com/9YBtFF7.png)
▲確認資料表是否有正常連結。
1.確認配對成功的圖徵(feature)數,在本次範例中,台灣共有368個鄉鎮,但是.csv資料檔只有107列。
QGIS顯示有105列配對成功,263列未成功(以紅字顯示),表示在資料配對的過程中有些微錯誤,導致結果不符合預期,此時應重新省視.csv檔以確認是否有重複或是與Shapefile檔的主鍵不相符之處。
本指南先假設無問題,繼續下方說明。
2.點選「Close」關閉視窗。
3.可以看到連結好的圖層「joined」已經被加入QGIS專案中。
![](https://i.imgur.com/ZRiGbyG.png)
▲點選「joined」圖層的屬性資料表,可以看到.csv檔中的資料已經配對到相對應的列中。
空白處則表示該欄位為配對而呈現缺失值(Missingdata,NULL)。
###缺失值處理
使用QGIS製作面量圖時,如果屬性資料表中有缺失值,則步驟會較為繁瑣。
我們先手動修改「joined」圖層的屬性資料表,將所有的缺失值欄位改成「-999(-999是資料科學上常用於表示缺失值的一個數字)」,以便後續作業。
![](https://i.imgur.com/R76W7xx.png)
▲點開「joined」圖層的屬性資料表,在上方工具列中找到、點選「Select/filterfeaturesusingform」。
![](https://i.imgur.com/zYgAM0c.png)
▲設定選取規則。
1.找到目標欄位「Plant_Area」,在右方「Excludefield」中找到、點選「ismissing(NULL)」。
2.點選「Selectfeatures」。
![](https://i.imgur.com/bTABIu0.png)
▲完成後可以發現所有「Plant_Area」為缺失值的圖徵都已經被選取。
![](https://i.imgur.com/xWPIQ4g.png)
▲開啟編輯模式。
![](https://i.imgur.com/wGDLiBz.png)
▲設定修改數值。
1.選擇「Plant_Area」欄位。
2.輸入「-999」。
3.點選「UpdateSelected」。
4.再次點選「Toggleeditingmode」,儲存變更並關閉編輯模式,
![](https://i.imgur.com/VwWubvO.png)
▲點選「Deselectall」。
![](https://i.imgur.com/S6fPkfz.png)
▲點選「Switchtotableview」。
![](https://i.imgur.com/JD5vAPA.png)
▲可以看到所有的缺失值欄位已經被取代成「-999」。
###調整面量圖參數
接下來進入作圖設定,已經可以把「ProcessingToolbox」關閉了。
![](https://i.imgur.com/RJ07D1T.png)
▲選擇「joined」圖層,並點選左上方的「OpentheLayerStylingpanel」。
![](https://i.imgur.com/IlThZUZ.png)
▲將這個選項改成「Graduated」。
![](https://i.imgur.com/CXPyxkh.png)
▲依序設定參數。
1.選擇資料來源欄位。
2.選擇使用的顏色色階。
3.點選「+」加入分級單位。
![](https://i.imgur.com/SgooGCd.png)
▲依序設定參數。
1.調整小數位數至「Precision-2」。
2.雙擊每個級距單位的「Values」與「Legends」,更改為需要的數值。
我這邊將第一個級距單位設為「-999-0」,如此便會顯示出缺失值欄位。
3.點選「Apply」進行分級著色。
![](https://i.imgur.com/tVA7bqo.png)
▲完成後已可見面量圖之雛形,但我們還可以加以美化。
![](https://i.imgur.com/rkE2tFw.png)
▲選擇所有級距單元後,按下上方的「Symbol/Change...」。
![](https://i.imgur.com/TPpZPg7.png)
▲依許點選「Fill/Simplefill」,並點選下方的「Srokecolor」右邊的下拉選單,勾選「Transparentstroke」,並按下「Apply」。
除此之外,這個繪圖面板還有很多細部設定可以調整,可以自行嘗試。
![](https://i.imgur.com/VhXv8i4.png)
▲完成面量圖設定,剩下出圖面板的設定了。
###合併圖徵
此指南使用的Shapefile檔的最小級別是「鄉鎮市」,我們可以透過合併圖徵來獲得「縣市」級別的圖徵。
![](https://i.imgur.com/2S1xxok.png)
▲點選「Vector/GeoprocessingTools/Dissolve...」。
![](https://i.imgur.com/NruSOec.png)
▲依序設定參數:
1.選擇欲合併的圖層。
2.選擇欲用以合併的欄位(主鍵),QGIS將會依此欄位將較次級的圖徵合併。
3.設定是否要另存成新的獨立圖資檔案,或是僅使用暫存圖層,建議儲存成獨立檔案以便下一次載入專案檔時使用。
4.點選「Run」。
![](https://i.imgur.com/FiHpglH.png)
▲此為上述第2步驟的畫面,可以選擇單一用以合併的目標欄位。
![](https://i.imgur.com/heYbtN9.png)
▲QGIS程式合併中。
![](https://i.imgur.com/AqYbjDv.png)
▲完成圖徵合併,後續可以依照上面的說明調整視覺化設定,以另地圖美觀,例如:調整縣市級的邊框粗細。
###出圖面板設定
最後一步是設定出圖面板(PrintLayout),出圖面板式儲存於專案檔(.qgz)中的,理論上下一次開啟同一個專案檔也可以載入相同的出圖設定,而不用重複調整。
![](https://i.imgur.com/xlySuq6.png)
▲點選「Project/NewPrintLayout」,開啟出圖面板。
![](https://i.imgur.com/HjB7XAU.png)
▲出圖面板為一個獨立彈出的視窗。
點選「AddItem/AddMap」。
![](https://i.imgur.com/TZt4nV6.png)
▲透過游標拉出要插入地圖的範圍。
![](https://i.imgur.com/a8PZGh8.png)
▲放開游標後,已插入地圖。
![](https://i.imgur.com/lyQxCEM.png)
▲同上,點選「AddItem/AddScaleBar」,插入比例尺。
![](https://i.imgur.com/n7coTIe.png)
▲同上,點選「AddItem/AddLegend」,插入圖例。
![](https://i.imgur.com/dnCrRkE.png)
▲同上,點選「AddItem/AddPicture」,插入方向標。
![](https://i.imgur.com/gY6geBP.png)
▲方向標的選項很多種,位於右方「ItemProperties/SearchDirectories」中,可以自行挑選。
![](https://i.imgur.com/nJLnM27.png)
▲插入的地圖範圍是根據原本QGIS操作頁面的可視範圍決定的,現在在QGIS專案頁面中縮放(Zoom)到目標位置(金門)。
![](https://i.imgur.com/XMjCQqt.png)
▲回到出圖面板,再次插入地圖,可以發現金門的範圍已被加入出圖面板中,代號為「Map2」。
![](https://i.imgur.com/v1DZuaK.png)
▲點選「AddItem/AddLabel」,插入文字標籤,我們在這邊插入金門與馬祖的標示,以便閱讀者判斷。
![](https://i.imgur.com/iPTnAJH.png)
▲點選「Layout/ExportasImage」,挑選欲匯出的圖片格式後,即可匯出完成的地圖。
QGIS也提供了SVG檔與PDF檔可供匯出。
![](https://i.imgur.com/ccWKJrD.png)
▲完成!
###補充-AgriMap_TW輸出的Shapefile
AgriMap_TW專案所輸出的Shapefile檔也可以透過這個流程開啟,因為在專案中已經做過資料表連結的動作,所以直接從「**缺失值處理**」這一步開始即可,以下簡單說明載入流程。
![](https://i.imgur.com/Xnw7Ui1.png)
▲依據上面的流程,指定載入AgriMap_TW所輸出的.shp檔(單一個Shapefile檔由五個子檔案所構成,只須點選副檔名為「.shp」的檔案,電腦會自動載入同一資料夾內的其他子檔案。
)
![](https://i.imgur.com/u7SKYTa.png)
▲順利載入Shapefile檔。
![](https://i.imgur.com/tSCLl18.png)
▲透過圖層選單開啟資料屬性表(OpenAttributeTable)。
![](https://i.imgur.com/7l0RIWp.png)
▲資料屬性表的視窗。
![](https://i.imgur.com/rFppaSm.png)
▲上方第一列可見資料屬性表的表頭。
注意2號方框,AgriMap_TW產出的Shapefile檔並未將缺失值補齊,可以利用上述教學補齊缺失值欄位後,再進行出圖設定。
##延伸閱讀
1.[QGIS官方指南](https://www.qgistutorials.com/zh_TW/docs/3/performing_table_joins.html)
我是參考這個指南來製作本教學的,基本上內容一致。
##變更日誌
*2020/07/19-18:08完成第1.0版說明。
*2020/07/19-18:46完成第1.1版說明。
:::info
**Findthisdocumentincomplete?**Leaveacomment!
:::
######tags:`GIS``Documentation`
×
Signin
Email
Password
Forgotpassword
or
Byclickingbelow,youagreetoourtermsofservice.
SigninviaFacebook
SigninviaTwitter
SigninviaGitHub
SigninviaDropbox
SigninviaGoogle
NewtoHackMD?Signup
延伸文章資訊
- 1QGIS 教學與提示— QGIS Tutorials and Tips
Want to learn QGIS in a structured way? ... for more learning materials and instructor-led online...
- 22-1 QGIS 下載安裝設定及操作介面
位元與64 位元的QGIS 軟體。然而目前最穩定長期版本(Long Term Release, LTR). 為2.18 版,3.0 版目前為測試版本,所以不納入目前開發與教學之考量。
- 3整合地理資訊要幹嘛?用QGIS 做出高質感地圖!跟著做 - 方格子
人文地理, 地理資訊系統, GIS, QGIS, 開放資料, 地理, 地圖, 資訊, ... 本篇針對QGIS 軟體的應用,做簡易的教學步驟,非常歡迎有興趣的朋友們下載來玩 ...
- 4QGIS 快速上手 - 打貓庄網咖[email protected]
07、在「Desktop」展開中選取「qgis:Quantum GIS」準備安裝。〈參考1-1〉. 【註】:◇ 在「Skip」點一下,會顯示「版本序號」,表示 ...
- 5QGIS 基本使用教學
空間資訊學概論. QGIS 基本使用教學 ... ◇https://qgis.org/zh-Hant/site/forusers/ download.html. ◇上課資料. ◇https://...