ساخت داشبورد با Streamlit: راهنمای جامع برای علم داده و یادگیری ماشین
در دنیای علم داده و یادگیری ماشین، توانایی ارائه نتایج تحلیلها و مدلها به شکلی قابل فهم و تعاملی برای ذینفعان، به همان اندازه مهمی که ساخت خود مدلهاست، اهمیت دارد. Streamlit یک کتابخانه پایتون متنباز است که به شما امکان میدهد به سرعت و به آسانی داشبوردهای وب تعاملی برای پروژههای علم داده و یادگیری ماشین خود ایجاد کنید. این مقاله به شما یک راهنمای جامع برای شروع کار با Streamlit ارائه میدهد، از نصب و راهاندازی اولیه تا ساخت یک داشبورد کامل با عناصر مختلف.
چرا Streamlit؟
Streamlit در مقایسه با سایر ابزارهای ساخت داشبورد، مزایای متعددی دارد:
- سادگی: Streamlit با استفاده از سینتکس پایتون ساده و شهودی، فرآیند ساخت داشبورد را بسیار آسان میکند. نیازی به دانش HTML، CSS یا JavaScript ندارید.
- سرعت: میتوانید داشبوردهای تعاملی را در عرض چند دقیقه ایجاد کنید.
- تعامل: Streamlit به شما امکان میدهد ویجتهای تعاملی مانند اسلایدرها، دکمهها، انتخابگرها و غیره را به داشبورد خود اضافه کنید.
- بهروزرسانی خودکار: هر زمان که کد پایتون خود را تغییر میدهید، Streamlit به طور خودکار داشبورد را بهروزرسانی میکند.
- متنباز و رایگان: Streamlit یک پروژه متنباز است و استفاده از آن رایگان است.
نصب Streamlit
برای نصب Streamlit، میتوانید از pip استفاده کنید:
pip install streamlit
پس از نصب، میتوانید با اجرای دستور زیر، یک برنامه Streamlit نمونه را اجرا کنید:
streamlit hello
این دستور یک داشبورد نمونه را در مرورگر وب شما باز میکند.
ساخت اولین داشبورد Streamlit
بیایید با یک مثال ساده شروع کنیم. یک فایل پایتون به نام my_dashboard.py ایجاد کنید و کد زیر را در آن قرار دهید:
import streamlit as st
st.title('اولین داشبورد من با Streamlit')
st.write('این یک مثال ساده برای شروع کار با Streamlit است.')
name = st.text_input('نام خود را وارد کنید:')
st.write(f'سلام {name}!')
برای اجرای این برنامه، دستور زیر را در ترمینال خود اجرا کنید:
streamlit run my_dashboard.py
این دستور یک داشبورد ساده را در مرورگر وب شما باز میکند که شامل یک عنوان، یک متن و یک فیلد ورودی متن است. هر بار که نام خود را در فیلد ورودی وارد کنید، متن زیر آن بهروزرسانی میشود.
عناصر اصلی داشبورد Streamlit
Streamlit طیف گستردهای از عناصر را برای ساخت داشبورد ارائه میدهد. برخی از مهمترین عناصر عبارتند از:
- متن:
st.write()،st.markdown()،st.latex() - تصاویر:
st.image() - دادهها:
st.dataframe()،st.table() - نمودارها: Streamlit با کتابخانههای نمودارسازی محبوب مانند Matplotlib، Plotly و Altair به خوبی ادغام میشود.
- ویجتها:
st.button()،st.checkbox()،st.radio()،st.selectbox()،st.slider()،st.text_input()،st.number_input()،st.date_input()،st.file_uploader() - چیدمان:
st.sidebar()،st.columns()،st.expander()
مثال پیشرفتهتر: داشبورد تحلیل داده
بیایید یک داشبورد کمی پیچیدهتر بسازیم که دادهها را از یک فایل CSV بارگیری میکند و یک نمودار تعاملی را نمایش میدهد.
ابتدا، یک فایل CSV به نام data.csv ایجاد کنید و دادههای زیر را در آن قرار دهید:
Date,Sales 2023-01-01,100 2023-01-02,150 2023-01-03,120 2023-01-04,180 2023-01-05,200
سپس، یک فایل پایتون به نام sales_dashboard.py ایجاد کنید و کد زیر را در آن قرار دهید:
import streamlit as st
import pandas as pd
import matplotlib.pyplot as plt
st.title('داشبورد تحلیل فروش')
# بارگیری دادهها
data = pd.read_csv('data.csv')
# تبدیل ستون Date به نوع داده datetime
data['Date'] = pd.to_datetime(data['Date'])
# ایجاد نمودار خطی
fig, ax = plt.subplots()
ax.plot(data['Date'], data['Sales'])
ax.set_xlabel('تاریخ')
ax.set_ylabel('فروش')
ax.set_title('روند فروش')
# نمایش نمودار در Streamlit
st.pyplot(fig)
# نمایش دادهها به صورت جدول
st.dataframe(data)
# اضافه کردن یک اسلایدر برای فیلتر کردن دادهها
date_range = st.slider('انتخاب بازه زمانی:', min_value=data['Date'].min(), max_value=data['Date'].max(), value=(data['Date'].min(), data['Date'].max()))
# فیلتر کردن دادهها بر اساس بازه زمانی انتخاب شده
filtered_data = data[(data['Date'] >= date_range[0]) & (data['Date'] <= date_range[1])]
# نمایش دادههای فیلتر شده
st.dataframe(filtered_data)
برای اجرای این برنامه، دستور زیر را در ترمینال خود اجرا کنید:
streamlit run sales_dashboard.py
این دستور یک داشبورد تعاملی را در مرورگر وب شما باز میکند که شامل یک نمودار خطی، یک جدول داده و یک اسلایدر برای فیلتر کردن دادهها است. با استفاده از اسلایدر، میتوانید بازه زمانی را انتخاب کنید و نمودار و جدول دادهها بر اساس بازه زمانی انتخاب شده بهروزرسانی میشوند.
نکات و ترفندها
- استفاده از کش (Caching): برای بهبود عملکرد داشبورد، میتوانید از ویژگی کش Streamlit برای ذخیره نتایج محاسبات پرهزینه استفاده کنید.
- سازماندهی کد: برای داشبوردهای بزرگ، کد خود را به توابع و ماژولهای جداگانه تقسیم کنید تا خوانایی و نگهداری آن آسانتر شود.
- استفاده از سایدبار: از سایدبار برای قرار دادن ویجتهای کنترلی و فیلترها استفاده کنید تا داشبورد شما مرتبتر به نظر برسد.
- استفاده از ستونها: از ستونها برای سازماندهی عناصر مختلف داشبورد در یک ردیف استفاده کنید.
- مستندات Streamlit: برای اطلاعات بیشتر در مورد Streamlit، به مستندات رسمی آن مراجعه کنید: https://docs.streamlit.io/
نتیجهگیری
Streamlit یک ابزار قدرتمند و آسان برای ساخت داشبوردهای وب تعاملی برای پروژههای علم داده و یادگیری ماشین است. با استفاده از Streamlit، میتوانید به سرعت و به آسانی نتایج تحلیلها و مدلهای خود را به شکلی قابل فهم و تعاملی برای ذینفعان ارائه دهید. این مقاله یک راهنمای جامع برای شروع کار با Streamlit ارائه داد. با تمرین و آزمایش، میتوانید مهارتهای خود را در ساخت داشبوردهای Streamlit بهبود بخشید و داشبوردهای پیچیدهتر و کاربردیتری ایجاد کنید.

بدون دیدگاه