--- title: '使用QGIS製作面量圖' disqus: hackmd --- 使用QGIS製作面量圖 === ## 大綱 [TOC] ## 內容說明 本教學將一步一步帶領讀者使用開源GIS軟體 — QGIS,製作面量圖。面量圖是主題地圖的一種,其製作方法是根據統計數值的多寡來將不同的地理區域上色,如此可有效呈現地理區域間目標數值的分布情形,常使用於資料視覺化的各種應用場合,例如:縣市長全國選舉時用以呈現各縣市的勝選政黨。本教學包括下列各點: 1. 使用QGIS開啟shapefile檔。 2. 插入以逗號分隔檔(.csv)存在的統計資料。 3. 進行「資料表連接(table join)」,將圖徵與統計資料連結起來。 4. 調整面量圖參數。 5. 出圖設定。 ## 教學 ### 安裝QGIS 3.X版 製作此指南時,我安裝的QGIS版本號為3.4,理論上3.X版本都可以適用此指南。請自[QGIS官網](https://qgis.org/en/site/)下載軟體,並依照指示安裝。  ▲ 安裝好後,預設在「開始」選單中會出現這些捷徑。 點選「QGIS Desktop 3.4.3」,開啟QGIS主程式。  ▲ 載入主程式的畫面。 QGIS以專案(project)來管理每一次的地理分析作業,可以想像成每一次開啟新的專案,就等同開始一份新的專題研究。  ▲ 初始介面如上,中間會顯示曾經開啟過的專案。 ### 插入向量圖層  ▲ 點選「Project/New」,開啟新專案。  ▲ 這是新專案的介面。  ▲ 點選「Layer/Add Layeer/Add Vector Layer」,載入Shapefile。  ▲ 依序設定欲載入的Shapefile: 1. 選擇「File」。 2. 選擇編碼格式,一般會是「UTF-8」,但若是台灣產出的Shapefile檔,可能會使用「Big-5」。 3. 選擇檔案位置。我會建議將所有專案會用到的圖資都放在同一個資料夾內以便搜尋,除非檔案很大,不方便移動。 4. 點選「Add」,加入圖層。  ▲ 順利載入Shapefile檔。  ▲ 在左下角的「Layer」選單中,左鍵點選剛才加入的圖層,然後點右鍵,在選單中點選「Open Attribute Table」,開啟屬性資料表。  ▲ 順利開啟屬性資料表。  ▲ 上方會顯示該Shapefile檔的欄位名稱。 ### 修改特定欄位  ▲ 點選屬性資料表上方,左邊第一個按鈕「Toggle editing mode」,開啟編輯模式。  ▲ 左鍵雙擊特定欄位,可以修改該欄位內容。  ▲ 修改後,再次點選「Toggle editing mode」,QGIS會詢問是否要儲存剛才的變更。**注意**此步驟會直接修改Shapefile檔的內容,建議每次進行新專案時先行備份新的Shapefile檔,利用新建立的檔案進行GIS分析。 ### 插入逗號分隔檔圖層  ▲ 透過文本編輯器,我們可以先行確認.csv檔中欄位的名稱及其對應的資料。在範例中,第二欄(Third_Name)為我們要用來連結兩資料表的主鍵(Key)。  ▲ 點選加入逗號分隔檔的圖層。  ▲ 依照數字順序依序選擇檔案: 1. 選擇要插入的.csv檔。 2. 選擇編碼,一般而言是UTF-8(有時是Big5,可以從下方的預覽功能中看到文字有無正常顯示。) 3. 選擇.csv格式 4. 勾選「此檔無地理資訊」。 5. 點選「Add」加入圖層,然後點選「Close」關閉視窗。  ▲ 完成後可以看到資料表格已經順利讀入QGIS。 ### 資料表連結  ▲ 點選「Processing/Toolbox」。  ▲ 點選設定。  ▲ 勾選「Processing/General/Use filename as layer name」,以方便之後步驟進行。勾完後點選下方的「OK」。  ▲ 在Processing Toolbox中開啟「join」功能。 1. 搜尋「join」。 2. 找到「Vector general/Join attribute by field value」,雙擊左鍵打開。  ▲ 設定資料表連結的選項。 1. 選擇具地理資訊的圖層(即A檔)。 2. 選擇該圖層中的主鍵欄位。 3. 選擇具統計資料的.csv檔(即B檔)。 4. 選擇該圖層中的主鍵欄位。  ▲ 設定連結好的資料表的存檔格式,請點選「Save to GeoPackage...」。接著依照彈出的視窗設定檔名及圖層名,並按下「Run」。  ▲ 確認資料表是否有正常連結。 1. 確認配對成功的圖徵(feature)數,在本次範例中,台灣共有368個鄉鎮,但是.csv資料檔只有107列。QGIS顯示有105列配對成功,263列未成功(以紅字顯示),表示在資料配對的過程中有些微錯誤,導致結果不符合預期,此時應重新省視.csv檔以確認是否有重複或是與Shapefile檔的主鍵不相符之處。本指南先假設無問題,繼續下方說明。 2. 點選「Close」關閉視窗。 3. 可以看到連結好的圖層「joined」已經被加入QGIS專案中。  ▲ 點選「joined」圖層的屬性資料表,可以看到.csv檔中的資料已經配對到相對應的列中。空白處則表示該欄位為配對而呈現缺失值(Missing data, NULL)。 ### 缺失值處理 使用QGIS製作面量圖時,如果屬性資料表中有缺失值,則步驟會較為繁瑣。我們先手動修改「joined」圖層的屬性資料表,將所有的缺失值欄位改成「-999(-999是資料科學上常用於表示缺失值的一個數字)」,以便後續作業。  ▲ 點開「joined」圖層的屬性資料表,在上方工具列中找到、點選「Select/filter features using form」。  ▲ 設定選取規則。 1. 找到目標欄位「Plant_Area」,在右方「Exclude field」中找到、點選「is missing (NULL)」。 2. 點選「Select features」。  ▲ 完成後可以發現所有「Plant_Area」為缺失值的圖徵都已經被選取。  ▲ 開啟編輯模式。  ▲ 設定修改數值。 1. 選擇「Plant_Area」欄位。 2. 輸入「-999」。 3. 點選「Update Selected」。 4. 再次點選「Toggle editing mode」,儲存變更並關閉編輯模式,  ▲ 點選「Deselect all」。  ▲ 點選「Switch to table view」。  ▲ 可以看到所有的缺失值欄位已經被取代成「-999」。 ### 調整面量圖參數 接下來進入作圖設定,已經可以把「Processing Toolbox」關閉了。  ▲ 選擇「joined」圖層,並點選左上方的「Open the Layer Styling panel」。  ▲ 將這個選項改成「Graduated」。  ▲ 依序設定參數。 1. 選擇資料來源欄位。 2. 選擇使用的顏色色階。 3. 點選「+」加入分級單位。  ▲ 依序設定參數。 1. 調整小數位數至「Precision -2」。 2. 雙擊每個級距單位的「Values」與「Legends」,更改為需要的數值。我這邊將第一個級距單位設為「-999-0」,如此便會顯示出缺失值欄位。 3. 點選「Apply」進行分級著色。  ▲ 完成後已可見面量圖之雛形,但我們還可以加以美化。  ▲ 選擇所有級距單元後,按下上方的「Symbol/Change...」。  ▲ 依許點選「Fill/Simple fill」,並點選下方的「Sroke color」右邊的下拉選單,勾選「Transparent stroke」,並按下「Apply」。除此之外,這個繪圖面板還有很多細部設定可以調整,可以自行嘗試。  ▲ 完成面量圖設定,剩下出圖面板的設定了。 ### 合併圖徵 此指南使用的Shapefile檔的最小級別是「鄉鎮市」,我們可以透過合併圖徵來獲得「縣市」級別的圖徵。  ▲ 點選「Vector/Geoprocessing Tools/Dissolve...」。  ▲ 依序設定參數: 1. 選擇欲合併的圖層。 2. 選擇欲用以合併的欄位(主鍵),QGIS將會依此欄位將較次級的圖徵合併。 3. 設定是否要另存成新的獨立圖資檔案,或是僅使用暫存圖層,建議儲存成獨立檔案以便下一次載入專案檔時使用。 4. 點選「Run」。  ▲ 此為上述第2步驟的畫面,可以選擇單一用以合併的目標欄位。  ▲ QGIS程式合併中。  ▲ 完成圖徵合併,後續可以依照上面的說明調整視覺化設定,以另地圖美觀,例如:調整縣市級的邊框粗細。 ### 出圖面板設定 最後一步是設定出圖面板(Print Layout),出圖面板式儲存於專案檔(.qgz)中的,理論上下一次開啟同一個專案檔也可以載入相同的出圖設定,而不用重複調整。  ▲ 點選「Project/New Print Layout」,開啟出圖面板。  ▲ 出圖面板為一個獨立彈出的視窗。點選「Add Item/Add Map」。  ▲ 透過游標拉出要插入地圖的範圍。  ▲ 放開游標後,已插入地圖。  ▲ 同上,點選「Add Item/Add Scale Bar」,插入比例尺。  ▲ 同上,點選「Add Item/Add Legend」,插入圖例。  ▲ 同上,點選「Add Item/Add Picture」,插入方向標。  ▲ 方向標的選項很多種,位於右方「Item Properties/Search Directories」中,可以自行挑選。  ▲ 插入的地圖範圍是根據原本QGIS操作頁面的可視範圍決定的,現在在QGIS專案頁面中縮放(Zoom)到目標位置(金門)。  ▲ 回到出圖面板,再次插入地圖,可以發現金門的範圍已被加入出圖面板中,代號為「Map 2」。  ▲ 點選「Add Item/Add Label」,插入文字標籤,我們在這邊插入金門與馬祖的標示,以便閱讀者判斷。  ▲ 點選「Layout/Export as Image」,挑選欲匯出的圖片格式後,即可匯出完成的地圖。QGIS也提供了SVG檔與PDF檔可供匯出。  ▲ 完成! ### 補充-AgriMap_TW輸出的Shapefile AgriMap_TW專案所輸出的Shapefile檔也可以透過這個流程開啟,因為在專案中已經做過資料表連結的動作,所以直接從「**缺失值處理**」這一步開始即可,以下簡單說明載入流程。  ▲ 依據上面的流程,指定載入AgriMap_TW所輸出的.shp檔(單一個Shapefile檔由五個子檔案所構成,只須點選副檔名為「.shp」的檔案,電腦會自動載入同一資料夾內的其他子檔案。)  ▲ 順利載入Shapefile檔。  ▲ 透過圖層選單開啟資料屬性表(Open Attribute Table)。  ▲ 資料屬性表的視窗。  ▲ 上方第一列可見資料屬性表的表頭。注意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 **Find this document incomplete?** Leave a comment! ::: ###### tags: `GIS` `Documentation`
×
Sign in
Email
Password
Forgot password
or
Sign in via Google
Sign in via Facebook
Sign in via X(Twitter)
Sign in via GitHub
Sign in via Dropbox
Sign in with Wallet
Wallet (
)
Connect another wallet
Continue with a different method
New to HackMD?
Sign up
By signing in, you agree to our
terms of service
.