• 카테고리

    질문 & 답변
  • 세부 분야

    데이터 분석

  • 해결 여부

    미해결

choropleth 파라미터들

21.12.30 20:02 작성 조회수 336

1

 

1. key_on을 설정할때 id값이 없다는 말씀이 어떤 말씀인지 잘 이해가 되지 않습니다

 

추가로 인터넷 찾아보면서 파라미터 중에 이해 안가는 두 가지 질문드립니다

 

 

 

 

2. key_on과 columns 파라미터가 어떻게 작동하는건지 잘 와닿지가 않습니다.

제가 이해한 바로는 data가 데이터 프레임 형태라면 반드시 key_on과 columns 파라미터를 넣어주어야 하는데

key_on 설명이 Variable in the `geo_data` GeoJSON file to bind the data to라고 되어있는 것을 보니

data파라미터와 geo_data 파라미터의 데이터들을 연결시키는 역할을 하는 것이라고 이해했고 여기서는 feature.properties.name이 data의 구('시군구명')과 연결되어 있다고 이해했습니다.

key_on 파라미터는 지도의 색상을 구분할때의 기준을 정하는 역할을 하는데 geo_data와 data간의 공통된 요소여야 한다고 이해했는데 궁극적으로 이 key_on이 choropleth의 작동에서 어떤 역할을 맡는지 잘 이해가 가지 않습니다.

key_on이 geo_data에서 색을 나누는 기준인건가요

 

columns는 data에서 사용하는 콜럼들을 넣는 파라미터라고 이해했습니다.

여기서는 '구'에 따라 '매장수'대로 색을 칠해서 두 column들을 작성한거로 이해해도 되나요??

(그럼 column파라미터에서도 '구'에 따라서 나누어서 칠한다고 명시를 한 것 같은데 굳이 key_on에서도 색을 나누는 기준을 넣는 이유가 뭔지 모르겠습니다. 겹치는 정보 아닌가요??!

질문 너무 많아서 죄송합니다 ㅠㅠ 이해가 더디네요

답변 1

답변을 작성해보세요.

0

안녕하세요.

설명이 조금 부족했네요.

원래 예제를 보면 아래와 같이 미국의 주별 정보를 가져와서 geo json 을 통해 주별 정보를 표현해 주고 있습니다.

key_on 에는 이 json 파일과 데이터프레임을 연결해줄 key 값을 지정하게 되는데요.

미국의 예시로는 주에 해당하는 id 값을 가져오게 됩니다.

import pandas as pd

url = (
    "https://raw.githubusercontent.com/python-visualization/folium/master/examples/data"
)
state_geo = f"{url}/us-states.json"
state_unemployment = f"{url}/US_Unemployment_Oct2012.csv"
state_data = pd.read_csv(state_unemployment)

m = folium.Map(location=[48, -102], zoom_start=3)

folium.Choropleth(
    geo_data=state_geo,
    name="choropleth",
    data=state_data,
    columns=["State", "Unemployment"],
    key_on="feature.id",
    fill_color="YlGn",
    fill_opacity=0.7,
    line_opacity=0.2,
    legend_name="Unemployment Rate (%)",
).add_to(m)

folium.LayerControl().add_to(m)
 

m 

미국 주에 대한 json 파일은 다음 링크에서 확인해 볼 수 있습니다.

[https://raw.githubusercontent.com/python-visualization/folium/master/examples/data/us-states.json](https://raw.githubusercontent.com/python-visualization/folium/master/examples/data/us-states.json)

해당 링크에서는 key_on 에 들어갈 값을 아래 json 파일의 id 값을 사용합니다.

그런데 서울 json 파일에는 id 값이 없는데 name 값으로도 사용할 수가 있어서 properties.name 으로 사용했습니다.

 

아래 이미지는 수업에 사용한 서울의 geo json 파일의 구조입니다.

id 값은 없지만  properties.name 으로 폴리곤을 가져와서 사용할 수 있습니다.

 

학습하시다가 또 궁금한 점이 있으면 질문 주세요!

따뜻한 연말 되세요 :)