import streamlit as st import pandas as pd import matplotlib.pyplot as plt import plotly.graph_objects as go # تنظیمات صفحه st.set_page_config(page_title="اداره زراعت و کنترل محصول", layout="wide") # عنوان برنامه st.title("اداره زراعت و کنترل محصول") # منوی کناری st.sidebar.title("منو") page = st.sidebar.selectbox("انتخاب صفحه", ["آپلود داده‌های رشد و ارتفاع", "آپلود داده‌های هواشناسی", "پیش بینی رشد مزارع نیشکر با استفاده از ماشین لرنینگ", "چت بات"]) if page == "آپلود داده‌های رشد و ارتفاع": st.header("آپلود داده‌های رشد و ارتفاع") upload_file = st.file_uploader("فایل CSV داده‌های رشد و ارتفاع را آپلود کنید", type=["csv"]) if upload_file is not None: crop_data = pd.read_csv(upload_file) st.write("نمایش داده‌ها:") st.dataframe(crop_data) # نمودار رشد fig1, ax1 = plt.subplots() for farm in crop_data["مزرعه"].unique(): farm_data = crop_data[crop_data["مزرعه"] == farm] ax1.plot(farm_data["هفته"], farm_data["رشد"], label=farm) ax1.set_title("رشد گیاه در هفته‌های مختلف") ax1.set_xlabel("هفته") ax1.set_ylabel("رشد") ax1.legend() st.pyplot(fig1) # نمودار ارتفاع fig2, ax2 = plt.subplots() for farm in crop_data["مزرعه"].unique(): farm_data = crop_data[crop_data["مزرعه"] == farm] ax2.plot(farm_data["هفته"], farm_data["ارتفاع"], label=farm) ax2.set_title("ارتفاع گیاه در هفته‌های مختلف") ax2.set_xlabel("هفته") ax2.set_ylabel("ارتفاع") ax2.legend() st.pyplot(fig2) # نمودار سه‌بعدی ارتفاع st.header("نمودار سه‌بعدی ارتفاع") farm_to_plot = st.selectbox("انتخاب مزرعه", crop_data["مزرعه"].unique()) farm_data = crop_data[crop_data["مزرعه"] == farm_to_plot] fig3 = go.Figure(data=[go.Surface(z=farm_data.pivot_table(index='هفته', columns='مزرعه', values='ارتفاع').values)]) fig3.update_layout(title="نمودار سه‌بعدی ارتفاع مزرعه " + farm_to_plot, autosize=True) st.plotly_chart(fig3) elif page == "آپلود داده‌های هواشناسی": st.header("آپلود داده‌های هواشناسی") upload_weather_file = st.file_uploader("فایل CSV داده‌های هواشناسی را آپلود کنید", type=["csv"]) if upload_weather_file is not None: weather_data = pd.read_csv(upload_weather_file) st.write("نمایش داده‌ها:") st.dataframe(weather_data) # تحلیل داده‌های هواشناسی fig4, ax4 = plt.subplots() ax4.plot(weather_data["تاریخ"], weather_data["میانگین درجه حرارت"], label="میانگین درجه حرارت") ax4.set_title("میانگین درجه حرارت در طول زمان") ax4.set_xlabel("تاریخ") ax4.set_ylabel("درجه حرارت") st.pyplot(fig4) fig5, ax5 = plt.subplots() ax5.plot(weather_data["تاریخ"], weather_data["میانگین رطوبت نسبی (درصد)"], label="میانگین رطوبت نسبی", color="green") ax5.set_title("میانگین رطوبت نسبی در طول زمان") ax5.set_xlabel("تاریخ") ax5.set_ylabel("رطوبت نسبی (درصد)") st.pyplot(fig5) elif page == "پیش بینی رشد مزارع نیشکر با استفاده از ماشین لرنینگ": st.header("پیش بینی رشد مزارع نیشکر با استفاده از ماشین لرنینگ") st.write("این قسمت در حال توسعه است...") elif page == "چت بات": st.header("چت بات") st.write("در اینجا شما می‌توانید با چت بات صحبت کنید.") # کد جاوا اسکریپت برای چت بات Botpress st.markdown(""" """, unsafe_allow_html=True)