Spaces:
Running
Running
File size: 8,603 Bytes
6d2f2c2 e0f20f4 6d2f2c2 e0f20f4 6d2f2c2 e0f20f4 6d2f2c2 |
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 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 |
import streamlit as st
import pandas as pd
import matplotlib.pyplot as plt
import pandas_bokeh
import folium
from streamlit_folium import st_folium
import requests
# ๊ธฐ์ฌ ์ ๋ชฉ
st.markdown("# ๋ถ์ ๋๋ค์ ๋ชฐ๋ฆฐ ๊ณต์? '์๋๋ถ์'๊ฐ ๊ณต์ ๊ฐ์๋ฅผ ๊ฒฐ์ ํ๋ค")
st.write("<br><br>", unsafe_allow_html=True) # 2์ค ๋์ด์ฐ๊ธฐ
# ์ค์ ๋ชฉ
st.markdown("### ๋์๊ณต์, ๋๊ตฌ๋ฅผ ์ํ ๊ณต๊ฐ์ธ๊ฐ")
st.write("<br>", unsafe_allow_html=True) # 1์ค ๋์ด์ฐ๊ธฐ
# 1๋ฌธ๋จ ์ ๋ชฉ
st.markdown('#### "ํ๊ต ๊ทผ์ฒ ๊ณต์์ด์? ์ด๋ ์๋์ง๋ ์ ๋ชจ๋ฅด๊ฒ ์ด์." ')
#1๋ฌธ๋จ ์ฌ์ง ์ฝ์
st.image('photo1.jpg', caption='5์ 19์ผ, ๋ํ์ ์๋ฏผ์(22)์จ๊ฐ ๋๋๋ฌธ๊ตฌ ์นดํ ์ธ๋ถ ๊ณต๊ฐ์์ ์ธํฐ๋ทฐํ๋ ๋ชจ์ต')
st.write("<br>", unsafe_allow_html=True) # 1์ค ๋์ด์ฐ๊ธฐ
# 1๋ฌธ๋จ ๋ฌธ๋จ ์์
st.write('''์์ธ ๋๋๋ฌธ๊ตฌ๋ ์ฌ๋ฌ ๋ํ์ด ๋ฐ์งํด ์์ด 20๋ ์์ทจ์์ด ๋ง์ ์ง์ญ์ด๋ค. ๋์์ ์์ธ์์์ 1์ธ๋น ๊ณต์๋ฉด์ ์ด ๊ฐ์ฅ ์ข์ ์ง์ญ์ด๊ธฐ๋ ํ๋ค.
๋๋๋ฌธ๊ตฌ ํ๊ธฐ๋์ ์ฌ๋ ์๋ฏผ์(22ยท์ฌยท๊ฐ๋ช
) ์จ๋ ํ ๋ฌ์ ๊ณต์์ 2๋ฒ ์ ๋ ๋ฐฉ๋ฌธํ๋ค. ๊ฑฐ์ฃผ์ง 1km ์ด๋ด ๋ฐ๊ฒฝ์ ๋ง๋
ํ ๊ณต์์ด ์๊ธฐ ๋๋ฌธ์ด๋ค.''' )
st.write(''' ๋ฏผ์ ์จ๋ โ๊ฐ๋ ๊ณต์์ ์์์ ํด์์ ์ทจํ๋ฉด ์ค๋ด์์๋ ๋๋ ์ ์๋ ์ฌ์ ์ ํด๋ฐฉ๊ฐ์ ๋๋ ์ ์์ด์ ์ข๋คโ๋ผ๊ณ ๋ตํ์ง๋ง, ๊ทธ๋
๊ฐ ์ค์ ๋ก ํฅํ๋ ๊ณณ์ ๊ณต์์ด ์๋ ์นดํ์๋ค.
โ์ฌ๊ธฐ์ ์ ์ผ ๊ฐ๊น์ด ๊ณต์๋ ๊ฑธ์ด์ 2~30๋ถ์ ๊ฑธ๋ฆฌ๋๊น ์์ฃผ ๊ฐ๊ธด ์ด๋ ค์์. ๊ทธ๋์ ๊ทธ๋ฅ ์นดํ ๊ฐ์ ์ ๊น ์ฌ๊ณ ์ค๋ ๊ฑฐ์ฃ .โ''' )
st.write("<br><br>", unsafe_allow_html=True) # 2์ค ๋์ด์ฐ๊ธฐ
st.image('photo2.jpg', caption='5์ 20์ผ, ๋ํ์ ์ต์ง์ฐ(24)์จ๊ฐ ๋ฅ์ฐ ๊ณต์์์ ์ธํฐ๋ทฐํ๋ ๋ชจ์ต')
st.write('''์ค๋๊ตฌ ์ ๋ด๋์ ๊ฑฐ์ฃผํ๋ ์ต์ง์ฐ(24ยท์ฌยท๊ฐ๋ช
) ์จ์ ์ฌ์ ์ ์กฐ๊ธ ๋ค๋ฅด๋ค. ๊ทธ๋
์ ์ง ์์ ์์นํ ๋ฅ์ฐ๊ณต์์ ๋๋ณด 5๋ถ ๊ฑฐ๋ฆฌ์ ์์ด ์ ๊ทผ์ฑ์ด ์ข๋ค.
โ๊ณต์ ๋๋ ์ ์ผ๊ฐ ์กฐ๋ช
์ด ์ค์น๋์ด ์๋ฒฝ์๋ ๋ฌด์ญ์ง ์๊ณ , ๋ค๋ฅธ ์ํํธ ๋จ์ง์์๋ ํธํ๊ฒ ๋ค์ด๊ฐ ์ ์๋ ์๊ธธ์ด ์์ด์ ์ข์์.โ''' )
st.write('''๊ทธ๋
๋ ์ง ๊ทผ์ฒ์ ์๋ ๊ณต์์ ํ ๋ฌ์ ์ฝ 15๋ฒ ๋ฐฉ๋ฌธํ์ง๋ง, ํ๊ต ์ฃผ๋ณ(๋๋๋ฌธ๊ตฌ)์๋ ๊ณต์์ด ์์ด ์์ฌ์์ ๋๋๋ค. โํ๊ต ์ฃผ๋ณ์๋ ๊ณต์์ด ์์ด์ ํด์ํ ๊ณต๊ฐ์ด ์ ๋ค๊ณ ์๊ฐํด์.
์ค์ ๋ก ๊ณต์์ด ์ด๋ ์๋์ง๋ ์ ๋ชจ๋ฅด๊ฒ ์ด์.โ''' )
#2๋ฌธ๋จ ์ ๋ชฉ
st.markdown('#### ์ ๊ทผ์ฑ ๋จ์ด์ง๋ ๋์ ๊ณต์... ์นดํ๋ก ๋ฐ๊ฑธ์ ๋๋ฆฌ๋ ์๋ฏผ๋ค ')
st.write("<br>", unsafe_allow_html=True) # 1์ค ๋์ด์ฐ๊ธฐ
# 2๋ฌธ๋จ ์ฒซ ๋ฒ์งธ ์ฌ์ง ์ฝ์
st.image('photo3.jpg', caption='์นดํ : 2024.01 ๊ธฐ์ค, ๊ณต์ : 2024.05 ๊ธฐ์ค')
st.write("<br>", unsafe_allow_html=True) # 1์ค ๋์ด์ฐ๊ธฐ
# 2๋ฌธ๋จ ๋ฌธ๋จ1
st.write('''๊ณต๊ณต๋ฐ์ดํฐํฌํธ์ ๋ฐ๋ฅด๋ฉด, ์ฌํด 1์ ๊ธฐ์ค ์ ๊ตญ์ ์๋ ์นดํ๋ ์ฝ 9๋ง 6์ฒ ๊ฐ์ ๋ฌํ๋ค. ๋ฐ๋ฉด ๊ณต์ ๊ฐ์๋ ์ฝ 1๋ง 8์ฒ ๊ฐ์ ๋ถ๊ณผํ๋ค. ๊ณต์์ด ์นดํ๋ณด๋ค 5๋ฐฐ ๋๊ฒ ์ ๋ค๋ ๊ฑด, ๊ทธ๋งํผ ์ ๊ทผ์ฑ์ด ๋จ์ด์ง๋ค๋ ์๋ฏธ๋ค.
์ฌ๋๋ค์ ๊ณต์์ ๊ฐ๊ณ ์ถ์ด๋ ์ด์ฉ ์ ์์ด ์นดํ๋ก ๋ฐ๊ฑธ์์ ๋๋ฆฐ๋ค. ํ์ ๋ ํด์ ์๊ฐ์ ์ผ๋ถ๋ฅผ ์ด๋ ์๊ฐ์ ์์ ์ ์๋ ์ฌ๋์ ๋ง์ง ์๋ค.''' )
st.write('''์นดํ ์ญ์ ๋ถ๋ช
ํ ํ๊ณ๊ฐ ์กด์ฌํ๋ค. ์นดํ๊ฐ ์๋ฌด๋ฆฌ ์ ๊ทผ์ฑ์ด ์ข์๋, ๊ณต์์ด ์ ๊ณตํ๋ ์ผ์ธ ํด์ ๊ธฐ๋ฅ์ ์ ๊ณตํ ์๋ ์๋ค.
์ถ๊ฐ์ ์ธ ์๊ฐ์ ๋ค์ฌ ๊ณต์์ ๊ฐ ์ ์๋ ์ฌ๋๋ค์ด โ๋์ ์ฃผ๊ณ โ ์ฌ์ผ ํ๋ ๊ณต๊ฐ์ด๋ผ๋ ์ ๋ ๋ณธ์ง์ ์ธ ๋ฌธ์ ๋ค.''')
st.write('''์์ธ์ ์ฌ์ค์, ํ์ฌ ๊ณต์ ๊ฐ์๊ฐ ๊ณผ๊ฑฐ์ ๋นํด ์๋นํ ๋์ด๋ ์ํ๋ผ๋ ๊ฒ์ด๋ค. ๋์๊ณต์๊ณผ ๋
น์ง ํ์ถฉ์ ์ํ โ๋์๊ณต์ ๋ฐ ๋
น์ง ๋ฑ์ ๊ดํ ๋ฒ๋ฅ โ์ด 2005๋
์ ์ ๋ ์ดํ,
๊ณต์์ ์ด๊ฐ์๋ ์ด๋ฌํด๋ถํฐ ์ฆ๊ฐํ๊ธฐ ์์ํ๋ค.''')
st.write("<br>", unsafe_allow_html=True) # 1์ค ๋์ด์ฐ๊ธฐ
# 2๋ฌธ๋จ ๋ ๋ฒ์งธ ์ฌ์ง ์ฝ์
st.image('photo4.jpg', caption='๊ธฐ๊ฐ : 2006๋
์ ํ 18๋
')
st.write("<br>", unsafe_allow_html=True) # 1์ค ๋์ด์ฐ๊ธฐ
# 2๋ฌธ๋จ ๋ฌธ๋จ2
st.write('''์์ธ์ ๊ธฐ์ค์ผ๋ก, ๋ฒ๋ฅ ์ํ์ผ๋ก๋ถํฐ 18๋
์ด ์ง๋ ํ์ฌ(2005\~2024)์ ๊ณต์ ๊ฐ์์ ๋ฒ๋ฅ ์ํ ์ ๊ณผ๊ฑฐ 18๋
(1987\~2005)์ ๊ณต์ ๊ฐ์๋ฅผ ๋น๊ตํ ๊ทธ๋ํ๋ค.
๋ฒ๋ฅ ์ํ ์ด์ ์ ์ง์ ๋ ๊ณต์ ๊ฐ์๋ 222๊ฐ, ์ํ ์ดํ์ ์ง์ ๋ ๊ณต์ ๊ฐ์๋ 324๊ฐ๋ค. 18๋
์ด๋ผ๋ ๋์ผํ ๊ธฐ๊ฐ ๋์ ์์ธ์ ๊ณต์ ๊ฐ์๋ ์ฝ 31% ์ฆ๊ฐํ๋ค.''')
st.write("<br>", unsafe_allow_html=True) # 1์ค ๋์ด์ฐ๊ธฐ
# 3๋ฌธ๋จ ์ ๋ชฉ
st.markdown("#### '๋ชจ๋๋ฅผ ์ํ' ๊ณต์์ด '๋ถ์๋ค์' ๊ณต์์ผ๋ก ")
# html ์ฝ์
# 3๋ฌธ๋จ ๋ณธ๋ฌธ
st.write('''์ทจ์ฌํ์ ์์ธ์ ์์น๊ตฌ๋ณ ์๋๋ถ์์ ๊ณต์ ๊ฐ์์ ์๊ด์ฑ์์ ํฅ๋ฏธ๋ก์ด ์ฌ์ค์ ๋ฐ๊ฒฌํ ์ ์์๋ค. ๋ฐ๋ก ์ง์ญ ์๋๋ถ์์ ํด๋น ์ง์ญ์ ๊ณต์ ๊ฐ์๊ฐ ๋น์ทํ ์์์ ๋ณด์ธ๋ค๋ ๊ฒ์ด๋ค.
๊ณต์์ด ๊ฐ์ฅ ์ ์ ๊ธ์ฒ๊ตฌ(55๊ฐ, 6๋ถ์), ๊ด์ง๊ตฌ(68๊ฐยท7๋ถ์), ์ค๊ตฌ(70๊ฐยท7๋ถ์), ๊ฐ๋ถ๊ตฌ(80๊ฐยท6๋ถ์)๋ ๋ชจ๋ ์๋๋ถ์๊ฐ ๋ฎ์ 6~7๋ถ์์ ์ํ๋ ์ง์ญ์ด์๋ค. ๋ฐ๋ฉด ์๋๋ถ์๊ฐ ๋์ ์กํ๊ตฌ(174๊ฐยท8๋ถ์), ์์ด๊ตฌ(179๊ฐยท9๋ถ์)ย ๋ฑ 8~9๋ถ์ ์ง์ญ๋ค์ ๋๋ถ๋ถ ๊ณต์ ๊ฐ์ ์์ ๊ถ์ญ์ ํฌํจ๋์๋ค. ๋์ด๋ ๊ณต์์ด ์๋๋ถ์๊ฐ ๋์ ์ง์ญ์ ์ค์ฌ์ผ๋ก ๊ณต๊ธ๋ ํ์ ํ๋ฒํ ์๋ฏผ๋ค์ ์ด๋ฅผ ์ฒด๊ฐํ๊ธฐ ์ด๋ ค์ ๋ ๊ฒ์ด๋ค.
์ด๋ฌํ ๋ถ๊ท ํ์ด ๋ฐ์ํ๋ ์์ธ์ ํ์ฌ ๊ณต์์ด ์กฐ์ฑ๋๋ ๊ณผ์ ์์ ์ฐพ์ ์ ์๋ค. ์ถฉ๋ถ์ ์ฑ
๊ฐ๋ฐ์ผํฐ ๋ฌธ์ง์ ์ ๋ฌธ์์์ โ๊ณต์์ 80% ์ด์์ด ๊ธฐ๋ถ์ฑ๋ฉ(๊ฐ๋ฐ์๊ฐ ์ผ์ ๋ถ๋ถ์ ๋
์ ๊ณต๊ณต์์ค์ ์ค์นํด ๊ตญ๊ฐ๋ ์ง์์ฒด์ ๋ฌด์์ผ๋ก ์ ๊ณตํ๋ฉด ์ฉ์ ๋ฅ ์ํฅ ๋ฑ์ ํํ์ ๋ฐ๋ ์ ๋)์ ๋ฐฉ์์ผ๋ก ์ด๋ฃจ์ด์ง๊ธฐ ๋๋ฌธ์ โ๊ฐ๋ฐ์โ์ ์
์ฅ์์ ๊ณต์์ด ์กฐ์ฑ๋๋คโ๋ผ๋ฉฐ ์ฃผ๊ฑฐ๊ณํ ์๋ฆฝ๊ณผ์ ์์๋ถํฐ ๋ฌธ์ ๊ฐ ์์์ ์ง์ ํ๋ค. ๊ณต์ ์กฐ์ฑ๊ณผ ๊ด๋ฆฌ ์ฑ
์์ด ์๋ ์ง์์ฒด๊ฐ ๋ณ๋ค๋ฅธ ์กฐ๋ก๋ ์ ์ฑ
์ ์๋ฆฝํ์ง ์์ผ๋, ๊ฐ๋ฐ์๊ฐ ์์ต์ฑ์ ๋์ด๊ธฐ ์ํด ์ํฌ๋ฆฌ ๊ณต๊ฐ์ ๊ณต์์ ์กฐ์ฑํ๊ณ ์๋ค๋ ๊ฒ์ด๋ค.''')
# ์ฌ์ง ์ฝ์
st.image('photo2.jpg', caption='๊ฒฝํฌ๋ ๊ทผ์ฒ ๋ง์ง ์ง๋(--- ์ ๊ณต)')
# ๋ฐ์ดํฐ ๋ถ๋ฌ์ค๊ธฐ
df = pd.read_excel('data_traffic_accidents.xlsx', index_col=0)
st.write('๋ค์ ๋ฐ์ดํฐ๋ ์ ๊ตญ์ ๊ตํต์ฌ๊ณ ๋ฅผ ์ง์ญ๋ณ๋ก ์ง๊ณํ ๊ฒ์ด๋ค')
#st.write(df)
# ๊ฒ์์ด ์
๋ ฅ ๋ฐ์ ๋ฐ์ดํฐ ์ ํ์ ์ผ๋ก ์ถ๋ ฅ
query = st.text_input('์ด ๊ณณ์ ์ง์ญ๋ช
(์๊ตฐ๊ตฌ๋์๋ฉด)์ ์
๋ ฅํ๋ฉด ๊ด๋ จ ๋ฐ์ดํฐ๋ง ๊ฒ์ํด ๋ณด์ฌ์ค๋๋ค', key='region1_input')
df['select1']=df['์ฌ๊ณ ์ง์ญ์์น๋ช
'].apply(lambda x: 1 if query in x else 0)
st.write('๊ฒ์ ๊ฒฐ๊ณผ:', df[df['select1']==1])
# ๊ตํต์ฌ๊ณ ์ ํ๊ณผ ์ฐ๋์ ๋ฐ๋ฅธ pivot table ๋ณด์ฌ์ฃผ๊ธฐ
df_pivot=df.pivot_table(index='์ฌ๊ณ ์ ํ๊ตฌ๋ถ', columns='์ฌ๊ณ ์ฐ๋', values='์ฌ๊ณ ๊ฑด์', aggfunc='sum')
df_heatmap=df_pivot.style.background_gradient(cmap='Oranges').format("{:.2f}")
st.write('๋ค์ ํ๋ ๊ตํต์ฌ๊ณ ๊ฑด์๋ฅผ ์ ํ๊ณผ ์ฐ๋์ ๋ฐ๋ผ ๊ตฌ๋ถํ ๊ฒ์ด๋ค', df_heatmap)
# ์๋ํด๋ผ์ฐ๋ ๋ณด์ฌ์ฃผ๊ธฐ
st.write('์ฃผ์ ๋จ์ด๋ค์ ์๋ํด๋ผ์ฐ๋๋ก ๋ณด์ฌ์ฃผ๋ฉด ๋ค์๊ณผ ๊ฐ๋ค')
st.image('wordcloud.png')
# ์ฐ๊ฒฐ๋ง๊ทธ๋ฆผ ๋ณด์ฌ์ฃผ๊ธฐ
st.write('''์ทจ์ฌํ์ ์ฃผ์ ๋จ์ด๋ค ๊ฐ์ ๊ณต๋์ถํํ๋ ๊ด๊ณ๋ฅผ ๋ฐํ์ผ๋ก ์๋ฏธ์ฐ๊ฒฐ๋ง์ ๊ทธ๋ ค๋ณด์๋ค.
๋ถ์๊ฒฐ๊ณผ, ~~์ค๋ช
~~''')
st.image('network.png')
# ๊ทธ๋ํ html ๋ณด์ฌ์ฃผ๊ธฐ
st.write('''์ทจ์ฌํ์ ๊ตํต์ฌ๊ณ ์ฌ๊ณ ๊ฑด์์ ์ฌ๋ง์์ ๊ฐ์ ๊ด๊ณ๋ฅผ ๊ทธ๋ํ๋ก ํ์ํ๋ค ๋ถ์๊ฒฐ๊ณผ, ~~์ค๋ช
~~
๊ทธ๋ํ ๊ฐ ์ ์ ๋ง์ฐ์ค๋ฅผ ๋์ผ๋ฉด ์ง์ญ ์ ๋ณด๊ฐ ๋ํ๋๋ค''')
with open('bokeh_example.html', 'r', encoding='utf-8') as f:
html_content1 = f.read()
st.components.v1.html(html_content1, height=500) # markdown๋ณด๋ค ๋ณต์กํ html ํ์ผ ์๋์ ๊ฐํจ
# ์ง๋ html ๋ณด์ฌ์ฃผ๊ธฐ
st.write('''์ทจ์ฌํ์ ์์ธ์ ์ฃผ์ ๋ํ์ ์์น์ ์ ๋ณด๋ฅผ ์ง๋์ ํ๊ธฐํด ๋ณด์๋ค. ๋ถ์๊ฒฐ๊ณผ, ~~์ค๋ช
~~
์ง๋ ์ ํ๊ธฐ ์ง์ ์ ๋ง์ฐ์ค๋ฅผ ๋์ผ๋ฉด ๊ด๋ จ ์ ๋ณด๊ฐ ๋ํ๋๋ค''')
with open('folium_example.html', 'r', encoding='utf-8') as f:
html_content2 = f.read()
st.components.v1.html(html_content2, height=500) |