Streamlit چیست؟ شروع کار با کتابخانه Streamlit در پایتون

کتابخانه Streamlit چیست؟

فهرست مطالب

در این مقاله می‌خواهیم درباره یاد بگیریم streamlit چیست، باقابلیت‌های مختلف آن آشنا شویم و نشان دهیم که چطور با کمترین زحمت بهترین داشبوردها را طراحی کنیم. داشبوردهایی که به‌شدت تعاملی بوده و کاربر از کار با آن لذت می‌برد. البته برای ایجاد چنین داشبوردهایی به دانش فنی بالا نیازی نداریم و آسان و سریع و تنها با چند خط کد، وب اپلیکیشن‌های فوق‌العاده تولید خواهیم کرد.

ابتدا کتابخانه Streamlit را معرفی می‌کنیم و از قابلیت‌های آن خواهیم گفت. سپس ابزارک‌های مختلف آن را معرفی کرده و نحوه نصب Streamlit را یاد می‌گیریم.

Streamlit چیست؟

معمولاً ارائه و گزارش نتایج آزمایش‌های علم داده / یادگیری ماشین می‌تواند کار سختی باشد. درحالی‌که درگذشته، یک ارائه پاورپوینت یا یک فایل LaTex برای نمایش پروژه‌مان کافی بود؛ اما امروزه با محبوبیتی که وب‌سایت‌ها دارند، بهتر است پروژه خود را در بستر یک سایت نمایش دهیم.

این همان جایی است که کتابخانه Streamlit وارد عمل می‌شود. Streamlit یک فریم‌ورک متن‌باز پایتون است که این امکان را به ما می‌دهد تا وب‌سایت‌های زیبا و تعاملی برای پروژه‌های یادگیری ماشین و علم داده بسازیم، بدون آنکه به داشتن مهارت‌های طراحی وب، نیاز باشد.

با Streamlit می‌توانیم به‌راحتی و تنها با اضافه‌کردن تعدادی تابع، یک وب‌سایت ایجاد کنیم و پروژه یادگیری ماشین خودمان را در قالب یک وب اپلیکیشن ارائه دهیم.

از قابلیت‌های مهم کتابخانه Streamlit پویایی آن است به صورتی که با تغییر داده‌ها، نمودارها و گزارش‌ها به‌روزرسانی می‌شوند.

در حال حاضر کتابخانه Streamlit قابلیت نمایش متون، داده ها، کد و همچنین بسیاری از ویجت (ابزارک)های تعاملی را فراهم می‌کند. همچنین به راحتی می توانیم از بسیاری از کتابخانه‌های رسم نمودار مثل Matplotlib ، Vega-Lite و Plotly در وب اپلیکیشن‌ها استفاده کنیم.

 

چگونه با کتابخانه Plotly نمودار رسم کنیم و نتایج کارمان را جذاب‌تر ارائه دهیم؟

در این مقاله، اصول اولیه استفاده از Streamlit برای ساخت داشبوردهای زیبای پایتونی را آموزش می‌دهیم.

نحوه نصب کتابخانه Streamlit

مانند کتابخانه‌های پایتونی دیگر، کتابخانه Streamlit را می‌توان با استفاده از PIP نصب کرد:

				
					pip install streamlit
				
			

پس از نصب Streamlit با اجرای برنامه hello world چک می‌کنیم همه چیز به‌درستی کار کند:

				
					streamlit hello
				
			

این کار یک وب‌سایت بر روی localhost:8501 برایتان باز می‌کند که در آن می‌توانیم تعدادی دمو که با کتابخانه Streamlit ایجاد شده را ببینیم.

باز کردن streamlit

 

برای یادگیری پایتون، دوره آموزش رایگان پایتون را در کانال یوتیوب دیتاهاب مشاهده کنید.

شروع به کار با کتابخانه Streamlit

اکنون‌که مطمئن شدیم همه چیز به‌درستی کار می‌کند، کار با Streamlit را آغاز می‌کنیم.

ابتدا باید کتابخانه Streamlit را به کمک import به پروژه اضافه کنیم:

				
					Import streamlit as st
				
			

فایل‌های مربوط به Streamlit را با نوشتن دستور زیر اجرا می‌کنیم:

				
					streamlit run first_app.py
				
			

این کار یک برگه جدید (tab) در مرورگر باز می‌کند و کد فعلی‌ نمایش می‌دهد. این برگه در مرورگر به طور اتوماتیک پس از هر تغییر به‌روز خواهد شد.

نحوه نمایش متن در Streamlit

کتابخانه Streamlit برای اضافه‌کردن متن، چندین روش از جمله st.text، st.markdown و st.title دارد.

				
					# Add a title
st.title('My first app')
# Add some text
st.text('Streamlit is great'

				
			

به همین راحتی، اکنون برنامه‌مان یک عنوان و یک جمله را نمایش می‌دهد.

نحوه نمایش متن با کتابخانه Streamlit

 

نمایش دیتافریم‌های Pandas در Streamlit

در کتابخانه Streamlit یک دیتافریم Pandas را می‌توان با استفاده از st.dataframe نمایش داد.

				
					import pandas as pd
st.dataframe(pd.DataFrame({
    'first column': [1, 2, 3, 4],
    'second column': [10, 20, 30, 40]
}))
				
			

 

نمایش دیتافریم در کتابخانه Streamlit

علاوه بر روش قبلی برای نمایش دیتافریم، کتابخانه Streamlit تابع write را نیز در اختیارمان قرار می‌دهد که به طور اتوماتیک، ورودی را تشخیص می‌دهد و باتوجه‌به نوع آن، داده را نمایش می‌دهد.

				
					st.write(pandas.DataFrame({
    'first column': [1, 2, 3, 4],
    'second column': [10, 20, 30, 40]
}))
				
			

چطور با Streamlit نمودار خطی (line chart) رسم کنیم؟

کتابخانه Streamlit تعدادی از کتابخانه‌های معروف نمایش بصری داده از جمله Matplotlib، VegaLite، deck.gl و Plotly که برای ساختن برخی نمودارها از آن استفاده خواهیم کرد، را پشتیبانی می‌کند.

برای ساختن یک نمودار خطی با تعدادی داده تصادفی، کد زیر قابل‌استفاده است:

				
					import numpy as np
chart_data = pd.DataFrame(
    np.random.randn(20, 3),
    columns=['a', 'b', 'c'])
st.line_chart(chart_data)
				
			

نمودار خطی در کتابخانه Streamlit

تا اینجای کار کتابخانه Streamlit معرفی شده و از قابلیت‌های آن گفتیم. سپس ابزارک‌های مختلف آن را معرفی کرده و نحوه نصب و راه‌اندازی Streamlit را آموزش دادیم. در ادامه ابتدا نحوه نمایش نقشه را آموزش داده و سپس به سراغ معرفی ابزارک‌های دیگر مثل اسلایدر، checkbox و selectbox می‌رویم.

ترسیم نقشه در پایتون با کتابخانه Streamlit

یکی از کارهایی که با استفاده از Streamlit به‌سادگی انجام‌پذیر است، ایجاد یک نقشه با تعدادی نقاط داده (Data-point) بر روی آن است. این کار با استفاده از ()st.map قابل انجام است.

				
					map_data = pd.DataFrame(
    np.random.randn(1000, 2) / [50, 50] + [37.76, -122.4],
    columns=['lat', 'lon'])
st.map(map_data)
				
			

 

نقشه در کتابخانه Streamlit

نحوه استفاده از ابزارک‌ها (Widgets) در Streamlit

با استفاده از ابزارک‌ها، کتابخانه Streamlit این امکان را به ما می‌دهد تا داشبوردهای تعاملی زیبا بسازیم. Streamlit دکمه‌ها، چک باکس (checkbox)، نوار لغزنده (slider)، ورودی متنی (text input) و بسیاری امکانات دیگر را مهیا کرده است. برای کسب اطلاعات بیشتر درباره تمام ابزارک‌های موجود، به API سر بزنید.

استفاده از checkbox برای نمایش/عدم نمایش داده

یکی از ابزارک‌های پشتیبانی شده توسط کتابخانه Streamlit، چک باکس است که برای نمایش یا عدم نمایش داده استفاده می‌شود.

				
					if st.checkbox('Show dataframe'):
    st.dataframe(pd.DataFrame({
        'first column': [1, 2, 3, 4],
        'second column': [10, 20, 30, 40]
    }))
    chart_data = pd.DataFrame(
        np.random.randn(20, 3),
        columns=['a', 'b', 'c'])
    st.line_chart(chart_data)
    map_data = pd.DataFrame(
        np.random.randn(1000, 2) / [50, 50] + [37.76, -122.4],
        columns=['lat', 'lon'])
    st.map(map_data)
				
			

 

استفاده از checkbox کتابخانه Streamlit

فیلترکردن داده در یک dataframe با استفاده از selectbox

از selectbox برای انتخاب یک گزینه از چند گزینه از یک لیست می‌توان استفاده کرد. این کار برای فیلتر داده بسیار مفید است. با استفاده از آن می‌توانیم روی ستون‌های dataframe، فیلتر اعمال کنیم.

				
					df = pd.DataFrame(
    np.random.randn(20, 3),
    columns=['a', 'b', 'c'])
column = st.selectbox(
    'What column to you want to display',
     df.columns)
st.line_chart(df[column])
				
			

 

کد Selectbox کتابخانه Streamlit

همچنین می‌توانیم با استفاده از st.multiselect به‌جای st.selectbox، چندین مورد را همزمان انتخاب کنیم.

				
					df = pd.DataFrame(
    np.random.randn(20, 3),
    columns=['a', 'b', 'c'])
columns = st.multiselect(label='What column to you want to display',
                         options=df.columns)
st.line_chart(df[columns])
				
			

 

Multiselect کتابخانه Streamlit

ایجاد نوار لغزنده (اسلایدر) در پایتون با Streamlit

یکی دیگر از ابزارک‌های عالی، نوار لغزنده است. از نوار لغزنده می‌توان برای انتخاب یک یا چند مقدار خاص استفاده کرد. برای ساختن یک نوار لغزنده ساده، برای انتخاب بین 0-100، کد زیر را می‌توان استفاده کرد.

				
					x = st.slider('Select a value')
st.write(x, 'squared is', x * x)
				
			

 

ساخت نوار لغزنده با کتابخانه Streamlit

اگر بخواهیم چند مقدار را انتخاب کنیم، باید چندین مقدار پیش‌فرض، به ورودی مقادیر بدهیم.

				
					x = st.slider(
    'Select a range of values',
    0.0, 100.0, (25.0, 75.0))
st.write('Range values:', x)
				
			

نمایش داده با slider در کتابخانه Streamlit

برای ورود به دنیای پروژه‌های یادگیری ماشین، آموزش رایگان یادگیری ماشین را در کانال یوتیوب دیتاهاب ببینید.

در این مقاله، در مورد کتابخانه Streamlit و اینکه چگونه از آن برای تبدیل پروژه‌های علم داده‌ به وبسایت‌های زیبا استفاده کنیم، توضیحاتی دادیم. Streamlit بسیار جالب است چرا که استفاده از آن بسیار آسان است و برای ایجاد یک وبسایت، هیچ نیازی به داشتن تجربه توسعه وبسایت نداریم.

اگر علاقه‌مند بودید، یک داشبورد Stock Price  (قیمت سهام) با استفاده از Streamlit در این آدرس Github قابل مشاهده است.

مطالب بیشتر

دیدگاهتان را بنویسید