CoolFace
Apppublic

dltmdgus/RandomForest

sourceHugging Faceupdated 2y agoView on Hugging Face
0likes
app.py57 linesDownload Raw Back to root
1import pandas as pd2import matplotlib.pyplot as plt3from matplotlib import font_manager4import streamlit as st5from io import BytesIO6 7# 사용자 지정 폰트 파일 경로8font_path = r"H2GTRM.TTF"9 10# 사용자 지정 폰트를 matplotlib에 추가11font_prop = font_manager.FontProperties(fname=font_path)12font_manager.fontManager.addfont(font_path)13 14# matplotlib의 기본 폰트를 사용자 지정 폰트로 설정15plt.rcParams['font.family'] = font_prop.get_name()16 17# 엑셀 파일을 읽어옵니다.18file_path = r"book_analysis_predictions_summary.xlsx"19df = pd.read_excel(file_path)20 21# 도서명 열을 인덱스로 설정합니다.22df.set_index('도서명', inplace=True)23 24# 월별 열을 추출합니다.25months = ['2024년 7월', '2024년 8월', '2024년 9월', '2024년 10월', '2024년 11월', '2024년 12월']26 27# Streamlit 애플리케이션의 UI 구성28st.title('랜덤포레스트 기반 도서 대출건수 예측')29 30# 도서명을 검색할 수 있는 입력 필드 제공31book_name = st.text_input('도서명을 입력하세요:')32 33# 도서명을 입력했을 때만 그래프 생성34if book_name:35    if book_name in df.index:36        # 도서별 그래프 생성37        fig, ax = plt.subplots()38        ax.plot(months, df.loc[book_name, months], marker='o', label=book_name)39        ax.set_title(f'{book_name} 월별 대출건수 분석')40        ax.set_xlabel('월')41        ax.set_ylabel('대출건수')42        ax.set_xticklabels(months, rotation=45)43        ax.legend(title='도서명')44        ax.grid(True)45        plt.tight_layout()  # 그래프의 레이아웃을 조정46 47        # 그래프를 Streamlit에서 표시하기 위해 BytesIO로 저장48        buf = BytesIO()49        plt.savefig(buf, format='png')50        buf.seek(0)51        st.image(buf, use_column_width=True)52 53        # 그래프 파일을 저장54        plt.close(fig)55    else:56        st.error('해당 도서명을 찾을 수 없습니다.')57