Esmaeilkiani commited on
Commit
b3211ba
·
verified ·
1 Parent(s): bb93356

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +58 -85
app.py CHANGED
@@ -1,95 +1,68 @@
1
  import streamlit as st
2
  import pandas as pd
3
  import matplotlib.pyplot as plt
 
4
  import plotly.graph_objects as go
5
 
6
- # تنظیمات صفحه
7
- st.set_page_config(page_title="اداره زراعت و کنترل محصول", layout="wide")
8
-
9
  # عنوان برنامه
10
- st.title("اداره زراعت و کنترل محصول")
11
 
12
- # منوی کناری
13
  st.sidebar.title("منو")
14
- page = st.sidebar.selectbox("انتخاب صفحه", ["آپلود داده‌های رشد و ارتفاع", "آپلود داده‌های هواشناسی", "پیش بینی رشد مزارع نیشکر با استفاده از ماشین لرنینگ", "چت بات"])
15
-
16
- if page == "آپلود داده‌های رشد و ارتفاع":
17
- st.header("آپلود داده‌های رشد و ارتفاع")
18
- upload_file = st.file_uploader("فایل CSV داده‌های رشد و ارتفاع را آپلود کنید", type=["csv"])
19
-
20
- if upload_file is not None:
21
- crop_data = pd.read_csv(upload_file)
22
- st.write("نمایش داده‌ها:")
23
- st.dataframe(crop_data)
24
-
25
- # نمودار رشد
26
- fig1, ax1 = plt.subplots()
27
- for farm in crop_data["مزرعه"].unique():
28
- farm_data = crop_data[crop_data["مزرعه"] == farm]
29
- ax1.plot(farm_data["هفته"], farm_data["رشد"], label=farm)
30
- ax1.set_title("رشد گیاه در هفته‌های مختلف")
31
- ax1.set_xlabel("هفته")
32
- ax1.set_ylabel("رشد")
33
- ax1.legend()
34
- st.pyplot(fig1)
35
-
36
- # نمودار ارتفاع
37
- fig2, ax2 = plt.subplots()
38
- for farm in crop_data["مزرعه"].unique():
39
- farm_data = crop_data[crop_data["مزرعه"] == farm]
40
- ax2.plot(farm_data["هفته"], farm_data["ارتفاع"], label=farm)
41
- ax2.set_title("ارتفاع گیاه در هفته‌های مختلف")
42
- ax2.set_xlabel("هفته")
43
- ax2.set_ylabel("ارتفاع")
44
- ax2.legend()
45
- st.pyplot(fig2)
46
-
47
- # نمودار سه‌بعدی ارتفاع
48
- st.header("نمودار سه‌بعدی ارتفاع")
49
- farm_to_plot = st.selectbox("انتخاب مزرعه", crop_data["مزرعه"].unique())
50
- farm_data = crop_data[crop_data["مزرعه"] == farm_to_plot]
51
- farm_data = farm_data.astype(float) # تبدیل داده‌ها به float برای نمودار سه‌بعدی
52
- fig3 = go.Figure(data=[go.Surface(z=farm_data.pivot_table(index='هفته', columns='مزرعه', values='ارتفاع').values)])
53
- fig3.update_layout(title="نمودار سه‌بعدی ارتفاع مزرعه " + farm_to_plot, autosize=True)
54
- st.plotly_chart(fig3)
55
-
56
- elif page == "آپلود داده‌های هواشناسی":
57
- st.header("آپلود داده‌های هواشناسی")
58
- upload_weather_file = st.file_uploader("فایل CSV داده‌های هواشناسی را آپلود کنید", type=["csv"])
59
-
60
- if upload_weather_file is not None:
61
- weather_data = pd.read_csv(upload_weather_file)
62
- st.write("نمایش داده‌ها:")
63
- st.dataframe(weather_data)
64
-
65
- # تحلیل داده‌های هواشناسی
66
- fig4, ax4 = plt.subplots()
67
- ax4.plot(weather_data["تاریخ"], weather_data["میانگین درجه حرارت"], label="میانگین درجه حرارت")
68
- ax4.set_title("میانگین درجه حرارت در طول زمان")
69
- ax4.set_xlabel("تاریخ")
70
- ax4.set_ylabel("درجه حرارت")
71
- st.pyplot(fig4)
72
-
73
- fig5, ax5 = plt.subplots()
74
- ax5.plot(weather_data["تاریخ"], weather_data["میانگین رطوبت نسبی (درصد)"], label="میانگین رطوبت نسبی", color="green")
75
- ax5.set_title("میانگین رطوبت نسبی در طول زمان")
76
- ax5.set_xlabel("تاریخ")
77
- ax5.set_ylabel("رطوبت نسبی (درصد)")
78
- st.pyplot(fig5)
79
-
80
- elif page == "پیش بینی رشد مزارع نیشکر با استفاده از ماشین لرنینگ":
81
- st.header("پیش بینی رشد مزارع نیشکر با استفاده از ماشین لرنینگ")
82
- st.write("این قسمت در حال توسعه است...")
83
-
84
- elif page == "چت بات":
85
- st.header("چت بات")
86
- st.write("در اینجا شما می‌توانید با چت بات صحبت کنید.")
87
-
88
- # کد جاوا اسکریپت برای چت بات Botpress
89
- botpress_script = """
90
- <script src="https://cdn.botpress.cloud/webchat/v1/inject.js"></script>
91
- <script src="https://mediafiles.botpress.cloud/29d24895-b0fa-4941-a3c4-8afa638f8b28/webchat/config.js" defer></script>
92
- """
93
- st.components.v1.html(botpress_script, height=800)
94
 
95
 
 
1
  import streamlit as st
2
  import pandas as pd
3
  import matplotlib.pyplot as plt
4
+ import seaborn as sns
5
  import plotly.graph_objects as go
6
 
 
 
 
7
  # عنوان برنامه
8
+ st.set_page_config(page_title="اداره زراعت و کنترل محصول", layout="wide")
9
 
10
+ # نوار کناری
11
  st.sidebar.title("منو")
12
+ menu = st.sidebar.selectbox("انتخاب کنید", ["نمایش چارت‌ها", "پیش بینی رشد مزارع ��یشکر با استفاده از ماشین لرنینگ", "چت بات"])
13
+
14
+ # چت بات
15
+ if menu == "چت بات":
16
+ st.sidebar.markdown("""
17
+ <script src="https://cdn.botpress.cloud/webchat/v2/inject.js"></script>
18
+ <script>
19
+ window.botpressWebChat.init({
20
+ hostUrl: "https://cdn.botpress.cloud/webchat/v2",
21
+ messagingUrl: "https://mediafiles.botpress.cloud/29d24895-b0fa-4941-a3c4-8afa638f8b28",
22
+ botId: "your-bot-id",
23
+ extraStylesheet: "https://mediafiles.botpress.cloud/29d24895-b0fa-4941-a3c4-8afa638f8b28/webchat/v2/config.js",
24
+ })
25
+ </script>
26
+ """, unsafe_allow_html=True)
27
+
28
+ # نمایش چارت‌ها
29
+ elif menu == "نمایش چارت‌ها":
30
+ st.title("نمایش چارت‌ها و نمودارهای رشد و ارتفاع مزارع نیشکر")
31
+
32
+ uploaded_file = st.file_uploader("فایل داده‌های رشد و ارتفاع را آپلود کنید", type="csv")
33
+ if uploaded_file:
34
+ crop_data = pd.read_csv(uploaded_file)
35
+ st.write("داده‌های رشد و ارتفاع بارگذاری شد.")
36
+
37
+ farms = crop_data['مزرعه'].unique()
38
+ selected_farm = st.selectbox("انتخاب مزرعه", farms)
39
+
40
+ farm_data = crop_data[crop_data['مزرعه'] == selected_farm]
41
+
42
+ st.subheader("رشد و ارتفاع گیاه در هفته‌های مختلف")
43
+ fig, ax = plt.subplots(1, 2, figsize=(14, 6))
44
+
45
+ sns.lineplot(x="هفته", y="رشد", data=farm_data, ax=ax[0])
46
+ ax[0].set_title("رشد گیاه")
47
+ ax[0].set_xlabel("هفته")
48
+ ax[0].set_ylabel("رشد")
49
+
50
+ sns.lineplot(x="هفته", y="ارتفاع", data=farm_data, ax=ax[1])
51
+ ax[1].set_title("ارتفاع گیاه")
52
+ ax[1].set_xlabel("هفته")
53
+ ax[1].set_ylabel("ارتفاع")
54
+
55
+ st.pyplot(fig)
56
+
57
+ st.subheader("نمودار سه بعدی ارتفاع گیاه")
58
+ fig = go.Figure(data=[go.Surface(z=farm_data.pivot(index='هفته', columns='مزرعه', values='ارتفاع').values)])
59
+ fig.update_layout(title='نمودار سه بعدی ارتفاع گیاه', autosize=True,
60
+ scene=dict(zaxis_title='ارتفاع', xaxis_title='هفته', yaxis_title='مزرعه'))
61
+ st.plotly_chart(fig)
62
+
63
+ # پیش بینی رشد مزارع نیشکر با استفاده از ماشین لرنینگ
64
+ elif menu == "پیش بینی رشد مزارع نیشکر با استفاده از ماشین لرنینگ":
65
+ st.title("پیش بینی رشد مزارع نیشکر با استفاده از ماشین لرنینگ")
66
+ st.write("به زودی...")
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
67
 
68