그래프를 만들 때 구도를 정하는데도 시간이 많이 걸리지만, 어떤 색상을 사용할지 고민 하는 시간이 훨씬 더 많은 편이다. 왜냐하면, 색상을 어떤 걸 사용하는지에 따라 촌스러운 그래프가 될 수도, 아니면 감각적인 그래프로 보일 수도 있기 때문이다. 그래서 이런 부분에 시간을 할애하는 편인데, 디자인에 조예가 깊지 않아 결과물에는 크게 영향을 미치지 않는다. 그런 나에게 색상선정 고민을 없애주는 함수가 있어 간단하게 정리해본다. 사용한 프로그램은 R프로그램이며, ggplot2 패키지를 사용하였다.
실폭도로 데이터를 이용하여 도로지도 그리기
시군구, 읍면동 등의 경계데이터를 받아 지도를 그리는 건 해봤으니, 이번에는 도로를 그려보는 걸 해볼 예정이다. 필요한 프로그램은 R프로그램으로 할 것이고, 패키지는 sf, tidyverse 정도면 가능하다. 대략 아래의 이미지처럼 하나의 시군구를 선택해서 혹은 범위를 조정해서 그릴 부분을 정할 수 있다.
R프로그래밍 - 불필요한 지도 영역 제거하기
서울시 선거구지도를 그려봤으니, 경기도 선거구까지만 지도로 표현해보려고 했는데, 몇가지 문제가 생겼다. 안산시 선거구를 그릴때, 행정동 정보를 이용해서 그룹화해서 경계를 병합하여 아래 그림과 같이 그릴 수 있었다. 그런데 좌측하단에 작은 섬이 하나 포함되면서 전체적으롤 지도가 넓은지역을 포함해야 하다보니 공백영역이 많아 보여 효율적인 표현이 어려웠다.
[더 읽기]국회위원선거 서울특별시 선거구 지도 만들기
R프로그래밍 언어의 ggplot2, sf 패키지 등을 이용해서 제22대 총선 선거구 지도를 그려볼까한다. 전국지도를 다 그릴수는 없고, 서울특별시만 대상으로 데이터를 가공해서 그려보았다. 디자인은 최근 여론조사들을 참고했고, 왼쪽에는 전체 서울시의 지도를, 오른쪽은 특정 선거구를 그려보았다.
(ggplot2) 래스터(Raster) 데이터로 지도 그리기
지도 데이터는 벡터(Vector) 또는 래스터(Raster) 데이터로 나뉜다. 이 포스팅에서는 래스터(Raster) 데이터를 이용하여 지도를 그려볼까한다. 래스터(Raster) 데이터 모델은 셀의 연속 그리드로 공간을 나타낸다. raster 데이터를 읽고 활용할 수 있는 패키지는 대표적으로 terra 와 raster 정도 있다. 각각 함수명이나 파라메터 사용법 정도 다를 뿐 원리는 동일하다. 하나씩 알아보려 한다.
데비안12 스크린샷 디폴트 파일명 변경하기(Xfce screenshooter)
데비안12를 설치하고 여러 시행착오를 거치면서, 블로그를 쓰기위해 화면캡쳐할 일이 많았다. 데비안에서 스크린샷 사용법은 간단했다. 키보드상의 프린트 스크린키를 누르면 바로 “스크린샷” 프로그램이 실행된다. 여기서 자그마한 불편함이 있었는데, 파일명에 한글이 디폴트 셋팅으로 들어가는 것이었다. 경험상 한글파일명은 리눅스환경에서 적합하지 않다보니, 영문파일명으로 디폴트 저장되도록 수정해보려 한다.
[더 읽기]Xfce GUI 에서 한글 설정하기
최근에 데비안12 를 설치했었는데, 설치당시 Gnome GUI 인터페이스를 체크하여 설치를 진행했었다. 저사양PC를 조금 더 사용하려고 리눅스OS를 설치한건데, 생각보다 버벅임이나 느려지는 현상이 많았다. 그래서 구글링을 좀 해보니, Xfce 가 더 가벼운 GUI 환경이라고 해서 재설치를 했다. 결과는 만족스러웠다. 저사양 노트북에는 Xfce 로 설치하는게 좋을거 같다.
[더 읽기]R프로그래밍 - 한글을 소리나는대로 영어로 변환하기
R 언어에서 stringi는 문자열 처리를 위한 강력한 패키지 중 하나이다. 이 패키지는 다양한 문자열 연산을 수행하는데 사용되며, 유니코드 문자열, 정규표현식, 문자열 분할, 결합, 변환 등 다양한 기능을 제공한다. 그 중에 한글을 소리나는대로 알파벳으로 변환하는 기능을 알아보려 한다.
(ggplot2) SF 패키지 공간 관계 표현하기
sf 패키지는 공간 영역간에 겹치는 부분, 혹은 그 특정 경계내에만 위치하는 특정 공간을 표시하는 등의 공간간 연산 작업을 아주 쉽게 수행할 수 있도록 기능을 제공하고 있다. 예를 들어 특정 프랜차이즈 가맹점을 전국 지도에 x 로 모두 표시했는데, 서울 영등포구안에 있는 가맹점만 지도에 표시하고 싶을 때, sf 패지키의 공간간의 관계연산을 통해 쉽게 필터링 할 수 있다.
MongoDB 데이터간 JOIN 방법($lookup)
MongoDB 가 하나의 컬렉션안에 다양한 계층과 릴레이션 관계를 JSON 으로 구조화 할 수 있긴 하지만, 결국에는 collection 간에 데이터를 조인(JOIN) 해야 하는 니즈는 생기기 마련이다. aggregate 함수에서는 $lookup 기능을 이용하여 컬렉션간에 데이터를 JOIN 할 수 있다.