카르토그램으로 인구현황 시각화 하기1
필요데이터 가져오기
draw_korea_raw = pd.read_excel("../data/07_draw_korea_raw.xlsx")
draw_korea_raw
draw_korea_raw_stacked = pd.DataFrame(draw_korea_raw.stack())
draw_korea_raw_stacked
draw_korea_raw_stacked.reset_index(inplace=True)
draw_korea_raw_stacked
# 컬럼명 변경
draw_korea_raw_stacked.rename(columns={"level_0":"y", "level_1": "x",0:"ID"},
inplace = True)
draw_korea_raw_stacked
엑셀 경계선 입력
BORDER_LINES=[
[(5,1),(5,2),(7,2),(7,3),(11,3),(11,0)], #인천
[(5,4),(5,5),(2,5),(2,7),(4,7),(4,9),(7,9),(7,7),(9,7),(9,5),(10,5),(10,4),(5,4)], # 서울
[(1,7),(1,8),(3,8),(3,10),(10,10),(10,7),(12,7),(12,6),(11,6),(11,5),(12,5),(11,4),(11,3)], # 경기도
[(8,10),(8,11),(6,11),(6,12)], # 강원도
[(12,5),(13,5),(13,4),(14,4),(14,5),(15,5),(15,4),(16,4),(16,2)], # 충북
[(16,4),(17,4),(17,5),(16,5),(16,6),(19,6),(19,5),(20,5),(20,4),(21,4),(21,3),(19,3),(19,1)], # 전북
[(13,5),(13,6),(16,6),(13,5),(14,5)], # 대전, 세종
[(21,2),(21,3),(22,3),(22,4),(24,4),(24,2),(21,2)], # 광주
[(20,5),(21,5),(21,6),(23,6)], # 전남
[(10,8),(12,8),(12,9),(14,9),(14,8),(16,8),(16,6)], # 충북
[(14,9),(14,11),(14,12),(13,1),(13,13)], # 경북
[(15,8),(17,8),(17,10),(16,10),(16,11),(14,11)], # 대구
[(17,9),(18,9),(18,8),(19,8),(19,9),(20,9),(20,10),(21,10)], # 부산
[(16,11),(16,13)],
[(27,5),(27,6),(25,6)]
]
카르토그램으로 인구현황 시각화 하기2
def plot_text_simple(draw_korea):
for idx, row in draw_korea.iterrows():
if len(row["ID"].split()) == 2:
dispname = "{}\n{}".format(
row["ID"].split()[0], row["ID"].split()[1])
elif row["ID"][:2] == "고성":
dispname = "고성"
else:
dispname = row["ID"]
if len(dispname.splitlines()[-1]) >=3:
fontsize, linespacing = 9.5, 1.5
else:
fontsize, linespacing = 11, 1.2
plt.annotate(
dispname,(row["x"] + 0.5, row["y"]+0.5),
weight="bold",
fontsize = fontsize,
linespacing = linespacing,
ha = "center", # 수평정렬
va = "center" # 수직정렬
)
def simpleDraw (draw_korea):
plt.figure(figsize=(8,11))
plot_text_simple(draw_korea)
for path in BORDER_LINES:
ys, xs = zip(*path)
plt.plot(xs,ys,c="black",lw=1.5)
plt.gca().invert_yaxis()
plt.axis("off")
plt.tight_layout()
plt.show()
카르토그램으로 인구현황 시각화 하기3
머지를 위한 검증작업
머지
카르토그램으로 인구현황 시각화 하기4
그려놓은 지도에 색상 표기 하기
카르토그램으로 인구현황 시각화 하기5(folium 지도시각화)
데이터 저장
draw_korea.to_csv("../data/07_draw_korea.csv",encoding="utf-8",sep=",")