이전 시간 참고 :
부동산 지역별 평균연령 bar chart 구현
( https://euhyeji.blogspot.com/2019/05/python-dash-bar-chart.html )
부동산 지역별 평당 매매/전세 가격 bar chart 구현
( https://euhyeji.blogspot.com/2019/05/python-dash-bar-chart_17.html )
이번 시간에는 지역별 인구수와 세대당 인원수 bar chart를 구현해 보자. 원소스에는 세대수도 포함되어 있으나 세대당 인원수 값이 있어서 본 구현에서는 제외하였다.
1. 원 소스 획득 ( 행정안전부 : http://27.101.213.4/index.jsp# )
주민등록 인구 및 세대현황 -> 통계표 -> 조회기간 월간 -> 구분 모두 체크 -> 검색 클릭 -> 전체읍면동 체크 -> csv 파일 다운로드
다운로드 받은 CSV를 열어보면 아래와 같다.
[행정구역] 컬럼은 이전 '지역별 평균연령'에서 사용했던 전처리 과정을 그대로 할 것이다. 다른 컬럼들은 [총인구수], [세대수], [세대당 인구], [남/녀 인구수], [남여 비율] 이 있다.
행전안전부 사이트 그래프에서 그려보면 아래와 같이 나온다.
총인구수와 세대수가 나오는데 나는 세대수 대신 세대당 인원수를 보여 줄 것이다.
2. dash : 총인구수 bar chart
3. dash : 세대당 인원수 bar chart
4. 구현 결과 : geenieland.na.to
아래와 같이 기존 chart에 총인구수와 세대당 인원수가 추가된 것을 확인 할 수 있다.
부동산 지역별 평균연령 bar chart 구현
( https://euhyeji.blogspot.com/2019/05/python-dash-bar-chart.html )
부동산 지역별 평당 매매/전세 가격 bar chart 구현
( https://euhyeji.blogspot.com/2019/05/python-dash-bar-chart_17.html )
이번 시간에는 지역별 인구수와 세대당 인원수 bar chart를 구현해 보자. 원소스에는 세대수도 포함되어 있으나 세대당 인원수 값이 있어서 본 구현에서는 제외하였다.
1. 원 소스 획득 ( 행정안전부 : http://27.101.213.4/index.jsp# )
주민등록 인구 및 세대현황 -> 통계표 -> 조회기간 월간 -> 구분 모두 체크 -> 검색 클릭 -> 전체읍면동 체크 -> csv 파일 다운로드
다운로드 받은 CSV를 열어보면 아래와 같다.
[행정구역] 컬럼은 이전 '지역별 평균연령'에서 사용했던 전처리 과정을 그대로 할 것이다. 다른 컬럼들은 [총인구수], [세대수], [세대당 인구], [남/녀 인구수], [남여 비율] 이 있다.
행전안전부 사이트 그래프에서 그려보면 아래와 같이 나온다.
총인구수와 세대수가 나오는데 나는 세대수 대신 세대당 인원수를 보여 줄 것이다.
2. dash : 총인구수 bar chart
@app.callback( Output('PopulationGraph', 'figure'), [Input('category1', 'value'), Input('category2', 'value'), Input('category3', 'value')]) def update_PopulationGraph(selected_category1, selected_category2, selected_category3): return { 'data': [go.Bar( x=population_graph['읍/면/동'], y=population_graph['2019년04월_총인구수'], text=population_graph['2019년04월_총인구수'], textposition = 'auto', opacity=0.6, marker=dict( color='rgb(158,202,225)', line=dict( color='rgb(8,48,107)', width=1.5), ), )], 'layout': go.Layout( xaxis={ }, yaxis=dict( title = '총인구수', ), margin={'l': 40, 'b': 100, 't': 10, 'r': 40}, hovermode='closest', height=300 ) }
3. dash : 세대당 인원수 bar chart
def update_NewestGraph(selected_category1, selected_category2, selected_category3): return { 'data': [trace_avgage, go.Bar(x=price_graph['읍/면/동'], y=[0], name='y dummy', hoverinfo='none', showlegend=False), go.Bar(x=population_graph['읍/면/동'],y=[0],yaxis='y2', name='y2 dummy', hoverinfo='none', showlegend=False), trace_popinfamily], 'layout': go.Layout( xaxis={ #'title': '읍/면/동', }, yaxis=dict( title = '평균연령', anchor='x', rangemode="tozero", range = [25,max(price_graph['2019년04월_평균연령'])] #range = [25,70] ), yaxis2=dict( title='세대당 인구수', titlefont=dict( color='rgb(148, 103, 189)' ), tickfont=dict( color='rgb(148, 103, 189)' ), anchor='x', rangemode="tozero", overlaying='y', side='right', range = [1,max(population_graph['2019년04월_세대당 인구'])] ), margin={'l': 40, 'b': 100, 't': 10, 'r': 40}, hovermode='closest', height=300 ) }
4. 구현 결과 : geenieland.na.to
아래와 같이 기존 chart에 총인구수와 세대당 인원수가 추가된 것을 확인 할 수 있다.
댓글 없음:
댓글 쓰기