-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathstreamlit_combo.py
More file actions
48 lines (39 loc) · 1.63 KB
/
Copy pathstreamlit_combo.py
File metadata and controls
48 lines (39 loc) · 1.63 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
# streamlit run streamlit_combo.py
import streamlit as st
import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns
# 데이터 로드
data = pd.read_csv('data/data_draw_korea.csv')
# 'Unnamed: 0' 컬럼 삭제
data = data.drop('Unnamed: 0', axis=1)
# 한글 폰트 설정
plt.rc('font', family="Malgun Gothic")
# Streamlit UI 구성
st.title(" 대한민국 광역시도 데이터 분석")
# 광역시도 목록 가져오기
sido_list = data['광역시도'].unique()
# 광역시도 선택
sido_name = st.selectbox("조회할 광역시도를 선택하세요", sido_list)
# 선택된 광역시도의 데이터 필터링
sido_df = data[data['광역시도'] == sido_name][['행정구역', '인구수', '면적']].reset_index(drop=True)
if sido_df.empty:
st.error(" 해당 광역시도의 데이터를 찾을 수 없습니다.")
else:
# 데이터 표시
st.subheader(f" {sido_name}의 DataFrame")
st.dataframe(sido_df)
# 인구수 그래프
st.subheader(f" {sido_name}의 인구수 현황")
fig, ax = plt.subplots(figsize=(18, 12))
sns.barplot(x='행정구역', y='인구수', data=sido_df.sort_values(by='인구수', ascending=False), ax=ax, hue='행정구역')
# Plot의 타이틀
ax.set_title(f'{sido_name} 행정구역별 인구수')
# streamlit의 title
st.pyplot(fig)
# 면적 그래프
st.subheader(f" {sido_name}의 면적 현황")
fig, ax = plt.subplots(figsize=(18, 12))
sns.barplot(x='행정구역', y='면적', data=sido_df.sort_values(by='면적', ascending=False), ax=ax, hue='행정구역')
ax.set_title(f'{sido_name} 행정구역별 면적')
st.pyplot(fig)