JUNGU commited on
Commit
bbe37ce
ยท
verified ยท
1 Parent(s): 2b95669

Update src/streamlit_app.py

Browse files
Files changed (1) hide show
  1. src/streamlit_app.py +30 -13
src/streamlit_app.py CHANGED
@@ -6,21 +6,38 @@ import seaborn as sns
6
  from scipy.stats import norm, skew
7
  import platform
8
 
9
- # ํ•œ๊ธ€ ํฐํŠธ ์„ค์ • (๋‹ค์–‘ํ•œ OS ํ™˜๊ฒฝ ์ง€์›)
 
10
  def set_korean_font():
11
- if platform.system() == 'Windows':
12
- plt.rc('font', family='Malgun Gothic')
13
- elif platform.system() == 'Darwin': # Mac
14
- plt.rc('font', family='AppleGothic')
15
- else: # Linux
16
- # ๋‚˜๋ˆ”๊ณ ๋”• ํฐํŠธ๊ฐ€ ์„ค์น˜๋˜์–ด ์žˆ์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.
17
- # ํ„ฐ๋ฏธ๋„์—์„œ `sudo apt-get install -y fonts-nanum*` ์‹คํ–‰
18
- try:
19
- plt.rc('font', family='NanumGothic')
20
- except:
21
- st.warning("๋‚˜๋ˆ”๊ณ ๋”• ํฐํŠธ๊ฐ€ ์„ค์น˜๋˜์–ด ์žˆ์ง€ ์•Š์•„ ํ•œ๊ธ€์ด ๊นจ์งˆ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. 'sudo apt-get install -y fonts-nanum*' ๋ช…๋ น์–ด๋กœ ํฐํŠธ๋ฅผ ์„ค์น˜ํ•ด์ฃผ์„ธ์š”.")
22
- plt.rcParams['axes.unicode_minus'] = False # ๋งˆ์ด๋„ˆ์Šค ํฐํŠธ ๊นจ์ง ๋ฐฉ์ง€
23
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
24
  def analyze_scores(df):
25
  """๋ฐ์ดํ„ฐํ”„๋ ˆ์ž„์„ ๋ฐ›์•„ ๋ถ„์„ ๊ฒฐ๊ณผ๋ฅผ ํ‘œ์‹œํ•˜๋Š” ํ•จ์ˆ˜"""
26
  st.subheader("๋ฐ์ดํ„ฐ ๋ฏธ๋ฆฌ๋ณด๊ธฐ (์ƒ์œ„ 5๊ฐœ)")
 
6
  from scipy.stats import norm, skew
7
  import platform
8
 
9
+ # --- ๊ธฐ์กด set_korean_font ํ•จ์ˆ˜๋ฅผ ์•„๋ž˜ ์ฝ”๋“œ๋กœ ์ „์ฒด ๊ต์ฒดํ•ด์ฃผ์„ธ์š” ---
10
+
11
  def set_korean_font():
12
+ """
13
+ Hugging Face Space์— ํฌํ•จ๋œ ํฐํŠธ ํŒŒ์ผ์„ ์ง์ ‘ ์ง€์ •ํ•˜์—ฌ ๋กœ๋“œํ•ฉ๋‹ˆ๋‹ค.
14
+ """
15
+ # 1. ์‚ฌ์šฉ์ž๊ฐ€ ์—…๋กœ๋“œํ•œ ํฐํŠธ ํŒŒ์ผ์˜ ๊ฒฝ๋กœ์™€ ์ด๋ฆ„์„ ์ •ํ™•ํžˆ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค.
16
+ # ์Šคํฌ๋ฆฐ์ƒท ๊ธฐ์ค€์œผ๋กœ, ํŒŒ์ผ์ด ์ตœ์ƒ์œ„ ๊ฒฝ๋กœ์— ์žˆ์œผ๋ฏ€๋กœ ์•„๋ž˜์™€ ๊ฐ™์ด ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค.
17
+ font_path = 'NanumGaRamYeonGgoc.ttf'
 
 
 
 
 
 
18
 
19
+ # 2. ํŒŒ์ผ์ด ์‹ค์ œ๋กœ ํ•ด๋‹น ๊ฒฝ๋กœ์— ์กด์žฌํ•˜๋Š”์ง€ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค.
20
+ if os.path.exists(font_path):
21
+ # 3. ํฐํŠธ ํ”„๋กœํผํ‹ฐ๋ฅผ ๊ฐ€์ ธ์™€์„œ, matplotlib์˜ ๊ธฐ๋ณธ ํฐํŠธ๋กœ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค.
22
+ font_prop = fm.FontProperties(fname=font_path)
23
+ plt.rc('font', family=font_prop.get_name())
24
+
25
+ # ์•ฑ์˜ ์‚ฌ์ด๋“œ๋ฐ”์— ์„ฑ๊ณต ๋ฉ”์‹œ์ง€๋ฅผ ํ‘œ์‹œํ•ฉ๋‹ˆ๋‹ค. (์„ ํƒ ์‚ฌํ•ญ)
26
+ try:
27
+ st.sidebar.success(f"'{font_prop.get_name()}' ํฐํŠธ ๋กœ๋”ฉ ์„ฑ๊ณต!")
28
+ except Exception:
29
+ # ์ŠคํŠธ๋ฆผ๋ฆฟ์˜ ์‹คํ–‰ ์ˆœ์„œ์— ๋”ฐ๋ผ ์˜ค๋ฅ˜๊ฐ€ ๋‚  ์ˆ˜ ์žˆ์–ด ์˜ˆ์™ธ ์ฒ˜๋ฆฌ
30
+ pass
31
+ else:
32
+ # 4. ํŒŒ์ผ์ด ์—†์„ ๊ฒฝ์šฐ, ๊ฒฝ๊ณ  ๋ฉ”์‹œ์ง€๋ฅผ ํ‘œ์‹œํ•ฉ๋‹ˆ๋‹ค.
33
+ try:
34
+ st.sidebar.warning(f"ํฐํŠธ ํŒŒ์ผ์„ ์ฐพ์„ ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค: '{font_path}'. ํ•œ๊ธ€์ด ๊นจ์ ธ ๋ณด์ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.")
35
+ except Exception:
36
+ pass
37
+
38
+ # 5. ๋งˆ์ด๋„ˆ์Šค ๊ธฐํ˜ธ๊ฐ€ ๊นจ์ง€์ง€ ์•Š๋„๋ก ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค.
39
+ plt.rcParams['axes.unicode_minus'] = False
40
+
41
  def analyze_scores(df):
42
  """๋ฐ์ดํ„ฐํ”„๋ ˆ์ž„์„ ๋ฐ›์•„ ๋ถ„์„ ๊ฒฐ๊ณผ๋ฅผ ํ‘œ์‹œํ•˜๋Š” ํ•จ์ˆ˜"""
43
  st.subheader("๋ฐ์ดํ„ฐ ๋ฏธ๋ฆฌ๋ณด๊ธฐ (์ƒ์œ„ 5๊ฐœ)")