import streamlit as st import pandas as pd import plotly.express as px import plotly.graph_objects as go st.title('Zali Ai - مطالعات کاربردی دهخدا') # آپلود فایل uploaded_file = st.file_uploader("لطفا فایل CSV یا Excel خود را آپلود کنید", type=['csv', 'xlsx']) if uploaded_file: # خواندن فایل if uploaded_file.name.endswith('.csv'): df = pd.read_csv(uploaded_file) else: df = pd.read_excel(uploaded_file) st.write("فایل آپلود شده:") st.write(df.head()) # انتخاب ستون‌ها columns = df.columns.tolist() selected_columns = st.multiselect('ستون‌های مورد نظر برای تحلیل را انتخاب کنید', columns) if selected_columns: st.write("ستون‌های انتخاب شده:") st.write(df[selected_columns]) # رسم نمودار سه‌بعدی if len(selected_columns) >= 3: fig = px.scatter_3d(df, x=selected_columns[0], y=selected_columns[1], z=selected_columns[2], color=selected_columns[2]) st.plotly_chart(fig) # رسم چارت سه‌بعدی for col in selected_columns: fig = px.histogram(df, x=col, nbins=30, title=f'Histogram of {col}') st.plotly_chart(fig) # رسم هیتوگرام سه‌بعدی if len(selected_columns) >= 2: fig = go.Figure(data=[go.Histogram2dContour( x=df[selected_columns[0]], y=df[selected_columns[1]], contours=dict( coloring='heatmap', ), colorscale='Blues', )]) st.plotly_chart(fig) # نمودارهای اضافی if len(selected_columns) >= 3: fig = px.line_3d(df, x=selected_columns[0], y=selected_columns[1], z=selected_columns[2], title='Line 3D Chart') st.plotly_chart(fig) fig = px.scatter_3d(df, x=selected_columns[0], y=selected_columns[1], z=selected_columns[2], title='Scatter 3D Chart') st.plotly_chart(fig) # استایل CSS st.markdown(""" """, unsafe_allow_html=True)