Programing Language/Python
[plot] geopandas: geo.json plotting with matplotlib
youngerman
2020. 4. 16. 15:47
반응형
Introduction
geoplot을 하기 위해선 우선 geo 관련 json파일이 필요한데, 이는 구글링을 통해 어렵지 않게 받을수 있다.
받은 뒤에, plotting을 하기 위해선 여러 툴이 있다.
Features
-folium을 이용하면 json없이 바로 png나 html로 플로팅을 할 수 있는데 matplotlib와 호환이 잘 되지 않기 때문에, 마음대로 custom하기가 어려움
- 이를 위해 geopandas를 사용하면 매우 쉽게 됨
- geopandas는 데이터를 DataFrame 형태로 불러오게 됨
- 각 row별로 plotting할 수 있고, color custom도 matplotlib와 함께 만지기 쉬움
Installation
# in jupyter notebook
!pip install geopandas
Usage
import pandas as pd
import numpy as np
import geopandas as gpd
import matplotlib.pyplot as plt
# data import
df_places = gpd.read_file('./OPENAPI/Data/skorea-provinces-2018-geo.json') # change json file location
# example plotting
df_places.plot() # plot all rows
df_places['geometry'][0] # plot specific row(s)
df_places.plot(column='code', cmap='afmhot') # the column 'code' is values for colormap
# example plotting2
# plt.figure(figsize=(24,6))
df_places.plot()
# figsize는 안통하고, dpi는 먹히고, 가로세로 비율은 알아서 정해짐. bbox_inches는 넣는게 쓸데없는 여백 사라짐
plt.scatter([128, 130],[36, 36], s=[50, 100]
# , c='r'
, color="None", edgecolor='r')
plt.legend()
plt.savefig('./Output/temp.png', format='png'
, dpi=320
, bbox_inches='tight'
)
반응형