본문 바로가기
개발/데이터시각화

[데이터시각화] 연도별 서울 아파트 가격 변동 그래프

by ▶ Carpe diem ◀ 2023. 11. 19.

[데이터시각화] 연도별 서울 아파트 가격 변동 그래프

이전 글에서 "전용면적별 연도별 서울 아파트 가격 변동 그래프"를 작성하는 방법에 대해 알아보았습니다.

2023.11.05 - [개발] - [데이터시각화] 전용면적별, 연도별 서울 아파트 가격 변동 그래프

 

[데이터시각화] 전용면적별, 연도별 서울 아파트 가격 변동 그래프

[데이터시각화] 전용면적별, 연도별 서울 아파트 가격 변동 그래프 공공데이터포털에서 제공하는 API를 이용하여 아파트 매매 실거래가를 가지고 오는 방법에 대해 알아보았습니다. 2023.10.20 - [

wide-shallow.tistory.com

 

이번에는 같은 아파트 단지 전체 면적을 그룹별로 묶어 아래와 같이 보여주는 방법에 대해 알아보겠습니다.

같은 아파트 단지 전체 면적을 그룹별로 묶어 보여주는 그래프
같은 아파트 단지 전체 면적을 그룹별로 묶어 보여주는 그래프

 

위와 같이 그래프를 그리기 위해서는 이전 글에서 작성하였던 내용과 비슷하게 코드를 작성하면 간단하게 할 수 있습니다. 이전에는 전용 면적까지 SelectBox를 이용하여 사용자가 선택할 수 있도록 하였지만, 이번에는 모든 전용 면적을 보여줄 것임으로 전용 면적 SelectBox는 제거하였습니다. 그리고, 추세선을 그룹별로 그려주기 위해 transform_regression() 함수에서 groupby를 이용하여 '전용면적'별로 추세선을 그려줄 것임을 명시해줘야 합니다. 

          df_selected = df[(df['법정동'] == beopjeongdong) & (df['아파트'] == apartment)]
          chart = (
              alt.Chart(df_selected)
              .mark_circle(size = 40)
              .encode(
                  x=alt.X('월:N', scale=alt.Scale(domain=months)),
                  y=alt.Y('거래금액:Q', scale=alt.Scale(domain=[0, df_selected['거래금액'].max() + 10000])),
                  color='전용면적:N'
              )
          )
          final_chart = chart + chart.transform_regression('월', '거래금액', groupby=['전용면적']).mark_line()

 

위와 같이 그래프를 그려보고 나니, 64.98, 95.74 전용 면적에 대해서만 비교해보고 싶어 전용 면적별 체크박스를 만들고, 체크박스가 체크된 전용 면적 그래프만 보여지게 하였습니다.

 

먼저, 단지별 전용 면적의 개수가 다르므로 다이나믹하게 체크박스가 그려질 수 있도록 하였습니다. 아파트 단지의 전용 면적 개수를 알아내고, 개수에 맞춰 행을 나누어주었습니다. 그리고 행마다 하나의 체크박스가 그려질 수 있도록 하였습니다.

          areas_cols = st.columns(len(areas['면적']))
          for i in range(len(areas['면적'])):
              with areas_cols[i]:
                  areas['Selected'][i] = st.checkbox(str(areas['면적'][i]), value=areas['Selected'][i], key=i)

 

위 코드를 동작하면 아래와 같이 아파트마다 전용 면적 개수에 맞춰 아래와 같은 체크박스가 생성됩니다.

전용 면적별 체크박스 화면
전용 면적별 체크박스 화면

 

체크된 전용 면적에 대해서만 그래프를 그려주기 위해 최종적으로 아래와 같은 그래프가 그려지게 됩니다.

최종 화면
최종 화면

 

이렇게 원하는 연도의 서울의 아파트 매매 실거래가를 그래프로 보여주는 것에 대해  알아보았고, 위 예제 전체 동작을 확인할 수 있도록 Streamlit app으로 제공하고 있습니다. 실제 코드나 전체 코드가 궁금하신 분은 '[데이터시각화] 연도별 서울 아파트 가격 변동 그래프' 예제 사이트를 참고해보시면 좋을 것 같습니다.