AI를 활용한 재밌는 것들을 개발합니다

2019년 5월 17일 금요일

[ python dash ] 부동산 지역별 평당 매매/전세 가격 bar chart 구현

이전 시간 참고 : 부동산 지역별 평균연령 bar chart 구현
https://euhyeji.blogspot.com/2019/05/python-dash-bar-chart.html )

지난 시간 지역별 평균연령 bar chart 구현에 이어 이번 시간에는 지역별 평당 매매/전세 가격을 표시하는 bar chart를 구현해보자.

1. 원 소스 획득 ( 국민은행 리브온 : https://onland.kbstar.com/quics?page=C059744 )

위 사이트에 들어가서 게시판 제일 위에 있는 '★Liiv ON 아파트시세통계 (단위면적당 평균가격) ' 글을 클릭한다.
엑셀파일을 다운로드 하여 내용을 확인해보자.


와우~ 행정안전부의 통계자료와는 달리 시도/구시군/구/동읍면 으로 아주 깨끗하게 구분이 되어 있다. 그냥 가져다 쓰면 되겠다.

2. dash : bar chart

지역을 검색 할 수 있는 drop box 는 기존 평균연령에 만들었던 것을 그대로 사용하면 된다. 여기서는 매매/전세 두가지 컬럼을 가진 bar chart를 그려 보자.

@app.callback(
    Output('PriceGraph', 'figure'),
    [Input('category1', 'value'),
     Input('category2', 'value'),
     Input('category3', 'value')])
def update_PriceGraph(selected_category1, selected_category2, selected_category3):
    traces_maemae = go.Bar(
            x=final_graph[final_graph['값'].str.contains('매매평균가')]['동읍면'],
            y=final_graph[final_graph['값'].str.contains('매매평균가')]['201904']*3.3,
            text=(final_graph[final_graph['값'].str.contains('매매평균가')]['201904']*3.3).astype(int),
            textposition = 'auto',
            opacity=0.6,
            marker=dict(
                color='rgb(158,202,225)',
                line=dict(
                    color='rgb(8,48,107)',
                    width=1.5),
            ),
            name='매매',
        )
    
    traces_jeonse = go.Bar(
            x=final_graph[final_graph['값'].str.contains('매매평균가')]['동읍면'],
            y=final_graph[final_graph['값'].str.contains('전세평균가')]['201904']*3.3,
            text=(final_graph[final_graph['값'].str.contains('전세평균가')]['201904']*3.3).astype(int),
            textposition = 'auto',
            opacity=0.6,
            marker=dict(
                color='rgb(255,202,225)',
                line=dict(
                    color='rgb(8,48,107)',
                    width=1.5),
            ),
            name='전세',
        )

    return {
        'data': [traces_maemae,traces_jeonse],
        'layout': go.Layout(
            xaxis={                                
            },
            yaxis=dict(
                title = '평당매매/전세가격',
                range = [0,max(final_graph['201904'])*3.3]                
            ),
            margin={'l': 40, 'b': 100, 't': 10, 'r': 40},
            hovermode='closest',
            height=300
        )
    }

3. 구현 결과 : geenieland.na.to

아래와 같이 지역을 검색하면 평균 연령과 매매/전세 가격을 동시에 볼 수 있다.






댓글 없음:

댓글 쓰기

가장 많이 본 글