안녕하세요,
이번 포스팅에서는 QGIS 화면 내에서 만든 지도에 범례(legend)와 축척(scale bar), 북위 표기(north sign) 등을 포함해 이미지 파일로 추출해내는 방법을 알아보겠습니다.

QGIS를 통해 시각화 자료를 다 만들어놓은 후에 이 결과물을 어떻게 추출해내야 할 지 몰라 애먹으신 적이 있나요?
Layout 활용법을 숙지하고 있으면 어떤 지도든 손쉽게 고화질 이미지로 저장할 수 있습니다.
내용이 방대한 관계로 두 포스팅에 나누어 게시하도록 하겠습니다.
그럼 예시를 통해 구체적인 방법에 관해 설명하겠습니다.
먼저 아래 링크를 통해 파푸아뉴기니의 인구 데이터(.tif)를 다운받아주세요.
https://hub.worldpop.org/geodata/summary?id=38197
WorldPop :: Population Counts
Privacy and Cookies Policy We use cookies to give you the best experience on our website. By continuing, you're agreeing to our use of cookies. Learn More
hub.worldpop.org
파푸아뉴기니의 국경 지도는 지난 포스팅에서 래스터에서 벡터로 변환한 파일을 그대로 활용하겠습니다. (파일 변환 관련 자세한 내용은 우측 링크 참고: https://qgis-jaehee.tistory.com/17)
국경 지도의 래스터 파일은 이 링크를 참고해주세요: https://hub.worldpop.org/geodata/summary?id=24680
그리고 두 파일을 모두 QGIS 창 안으로 불러옵니다.
인구 지도를 효과적으로 시각화하기 위해서 국경 지도의 채우기 색상은 100% 투명하게 바꿔주었습니다.
그럼 인구 지도에 스타일을 적용해볼까요?
레이어 창에서 png_ppp_2020_1km_Aggregated_UNadj 파일을 우클릭한 후 Properties(속성) 창을 활성화해주세요.
Symbology > Render type: Singleband pseudocolor 를 선택해주세요.
효과적인 스타일 적용은 이번 포스팅의 주제가 아니니 간단히 QGIS가 지원하는 Continuous 분류법을 사용하겠습니다. (하단의 Classify 클릭 후 바로 위 Mode: Continuous 선택)
또한 보다 나은 시각화 작업을 위해 맨 위의 0 값은 투명하게 바꿔주겠습니다..
이대로 적용 후 QGIS 메인 화면으로 돌아오면 아래와 같이 인구 데이터에 범례가 생성되고 이에 따른 시각화 작업이 이루어진 것을 확인할 수 있습니다.
그럼 이제 범례와 축척, 복위 표시 등을 포함하여 위 지도를 PNG 파일로 추출해보겠습니다.
메뉴 탭에서 Project > New Print Layout 을 클릭해주세요.
아래와 같은 창이 뜨면 임의의 제목을 입력한 후 "OK" 버튼을 눌러주세요.
새로운 창이 생성됩니다.
이 Layout에서 추출될 지도를 직접적으로 수식하는 툴들을 사용하게 됩니다.
먼저 지도를 불러오겠습니다.
상단 메뉴 바에서 Add Item > Add Map 을 눌러주세요.
커서가 십자가 모양으로 변하면 중앙에 위치한 하얀 캔버스 위에 원하는 크기만큼의 지도를 드래그하여 삽입해주세요.
만약 지도가 너무 많이 확대/축소되었거나 엉뚱한 지역을 불러왔다면 메인 QGIS 화면에서 조정 후 Layout 창으로 돌아와 지도를 재삽입해주어야 합니다. 원하지 않는 지도는 선택 후 Delete 키를 이용해 지워주면 됩니다.
그럼 이제 범례(legend) 삽입을 해보겠습니다.
좌측 아이콘 중 중간 지점에 위치한 'Add Legend' 아이콘을 눌러주세요.
이후 캔버스 위에 십자가 모양의 마우스 커서가 뜨면 아래와 같이 여백의 공간에 직사각형을 하나 그려주세요.
그럼 모든 레이어의 범례가 일렬로 나타나게 됩니다.
우리는 Layout 창에서 이 범례의 폰트 및 폰트 사이즈, 굵기, 범례 및 범례 제목 간 간격 등을 조정할 수 있습니다.
물론, 필요 없는 레이어의 범례를 아예 삭제를 할 수도 있으며, 세로가 아닌 가로의 형태로 각 범례를 배치할 수도 있습니다.
국경 레이어에는 범례를 추가해주지 않아도 되니 인구 레이어의 범례만 남겨두고 수식해보도록 하겠습니다.
1) 원하는 레이어의 범례를 삭제하고 싶을 때
1-1. 범례 그룹을 클릭 > 우측의 "Legend Items" 창으로 가주세요.
1-2. 'Auto update' 좌측의 체크박스를 해제해줍니다.
1-3. 삭제하고자 하는 레이어를 클릭하고 하단의 (-) 버튼(Remove selected items from legend)을 눌러줍니다.
그럼 이제 인구 레이어만 남아있는 것을 확인할 수 있습니다.
그럼 남은 인구 레이어 범례의 제목도 raw data의 이름 그대로가 아닌 우리가 원하는 대로 바꿔줘야 하겠죠?
2) 범례 제목을 바꾸고 싶을 때
2-1. 우측의 Legend Items 창에서 바꾸고자 하는 레이어를 더블클릭합니다.
2-2. 위와 같이 화면이 바뀌면 원하는 글자로 레이블을 바꿔줍니다.표기하기 원하는 언어 모두 표기 가능하며 저는 'Total Population'이라고 바꿔주겠습니다. 우측뿐만 아니라 좌측 캔버스 내 범례 창에서도 범례 제목이 바뀌었습니다.
'Legend item Properties' 옆에 있는 좌측 화살표 모양의 아이콘을 클릭하면 다시 'Legend Items' 화면으로 돌아올 수 있습니다.
3) 범례 폰트를 수식하고 싶을 때
3-1. Legend items 창에서 마우스를 스크롤 하여 아래 'Fonts and Text Formatting' 메뉴를 클릭해주세요.
3-2. 여러 항목 중 'Subgroup Headings'를 찾아가주세요.
3-3. Subgroup Headings를 클릭해 인구 범례 제목의 폰트와 사이즈, 굵기를 아래와 같이 변경해보겠습니다.
3-4. Total Population 의 폰트 서식이 아래와 같이 변경되었습니다.
3-5. 범례 항목의 폰트를 수식하려면 'Item Labels'의 폰트와 정렬(Alignment)을 각각 변경해주시면 됩니다.
다만 폰트 컬러 변경 시 모든 항목의 폰트 컬러가 변경되니 유의해주세요.
4) 범례/레이블 간 간격 설정하기
4-1. 범례/레이블 간 간격을 조정하려면 아래 'Spacing' 메뉴를 클릭해주세요. 아래 우측과 같은 항목이 나타납니다.
4-2. 범례 제목과 범례 레이블들 간의 사이를 조정하고 싶으시다면 'Subgroup Headings'로 가셔서 'Below headings'의 간격을 늘려주세요. (0mm -> 10mm 로 확장) 좌측 캔버스에 범례 제목과 범례 레이블 간 간격이 늘어났습니다.
4-3. 'Side of heading' 기능은 각 항목을 들여쓰기 할 수 있는 기능입니다. 5mm로 늘려주니 'Total Population' 글자가 우측으로 이동한 것을 알 수 있습니다.
4-4. 범례 레이블 간 간격을 늘리거나 줄이고 싶으시다면 'Legend Items' > Space between symbols 의 간격을 조정해주세요.
4-5. 'Legend Items' > Space before side of symbol 은 레이블의 들여쓰기 기능으로 쓰일 수 있습니다.
이외에도 여러가지 spacing 기능이 많으나 하나씩 조정해보시면 어떤 기능으로 쓰이는 항목들인지 충분히 유추가 가능합니다.
그럼 이상으로 Print Layout 기능 중 지도 및 범례를 삽입하고 이를 수식해보는 방법에 관한 포스팅을 마치도록 하겠습니다.
다음 포스팅에서는 축척과 북위 표시, Note (비고) 등을 삽입한 후 최종적으로 지도를 이미지화하여 추출하는 방법을 알아보겠습니다.
감사합니다!

'QGIS 국문 가이드 > QGIS 초급' 카테고리의 다른 글
[QGIS 중급] 새로운 Polygon 파일 생성하기 (0) | 2023.02.17 |
---|---|
[QGIS 중급] 이미지 파일 지오레퍼렌싱(Georeferencing)하기 (2) | 2023.02.16 |
[QGIS 초급] 원하는 영역만 잘라내기 (Clip) - 래스터 레이어 (0) | 2023.02.11 |
[QGIS 초급] 원하는 영역만 잘라내기 (Clip) - 벡터 레이어 (0) | 2023.02.10 |
[QGIS 초급] Toggle editing mode의 활성화 (for 벡터 레이어 편집) (1) | 2022.10.12 |
댓글