import streamlit as st import pandas as pd import matplotlib.pyplot as plt # عنوان داشبورد st.title('داشبورد تحلیل داده با استفاده از Streamlit') # آپلود فایل اکسل uploaded_file = st.file_uploader("یک فایل اکسل انتخاب کنید", type=["xlsx"]) if uploaded_file is not None: # خواندن فایل اکسل df = pd.read_excel(uploaded_file) # نمایش داده‌های فایل اکسل st.write("داده‌های فایل اکسل:") st.dataframe(df) # انتخاب ستون‌ها برای نمایش در نمودار columns = df.columns.tolist() x_axis = st.selectbox('ستون محور X را انتخاب کنید', options=columns) y_axis = st.selectbox('ستون محور Y را انتخاب کنید', options=columns) # ترسیم نمودار if x_axis and y_axis: fig, ax = plt.subplots() ax.plot(df[x_axis], df[y_axis]) ax.set_xlabel(x_axis) ax.set_ylabel(y_axis) ax.set_title(f'نمودار {y_axis} بر حسب {x_axis}') st.pyplot(fig) # نمودارهای اضافی st.subheader('نمودارهای اضافی') # نمودار میله‌ای st.write('نمودار میله‌ای') fig, ax = plt.subplots() ax.bar(df[x_axis], df[y_axis]) ax.set_xlabel(x_axis) ax.set_ylabel(y_axis) ax.set_title(f'نمودار میله‌ای {y_axis} بر حسب {x_axis}') st.pyplot(fig) # نمودار پراکندگی st.write('نمودار پراکندگی') fig, ax = plt.subplots() ax.scatter(df[x_axis], df[y_axis]) ax.set_xlabel(x_axis) ax.set_ylabel(y_axis) ax.set_title(f'نمودار پراکندگی {y_axis} بر حسب {x_axis}') st.pyplot(fig) # نمودار هیستوگرام st.write('نمودار هیستوگرام') fig, ax = plt.subplots() ax.hist(df[y_axis], bins=30) ax.set_xlabel(y_axis) ax.set_title(f'نمودار هیستوگرام {y_axis}') st.pyplot(fig)