warleagle commited on
Commit
b5f0ed5
·
verified ·
1 Parent(s): ace1ad2

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +31 -54
app.py CHANGED
@@ -1,9 +1,8 @@
1
- #%%
2
  import pandas as pd
3
  import streamlit as st
4
  import plotly.graph_objects as go
5
 
6
- df = pd.read_excel("preprocessed_geodata_v2.xlsx")
7
  def get_lat_lon(row):
8
  row = eval(row['result_dadata'])[0]
9
  lat = row['geo_lat']
@@ -12,26 +11,14 @@ def get_lat_lon(row):
12
 
13
  return lat, lon, adress
14
 
15
-
16
-
17
-
18
- dct_colors = {'red':'больше 6000',
19
- 'blue':'6000-3000',
20
- 'yellow':'3000-1000',
21
- # 'green':'400-200',
22
- # 'purple':'200-100',
23
- # 'orange':'100-30',
24
- 'black':'меньше 1000'
25
- }
26
-
27
  def get_colors(row):
28
- if row > 6000:
29
  return 'red'
30
- elif row <= 6000 and row > 3000:
31
  return 'blue'
32
- elif row <= 3000 and row > 1000:
33
  return 'yellow'
34
- # elif row <= 400 and row > 200:
35
  # return 'green'
36
  # elif row <= 200 and row > 100:
37
  # return 'purple'
@@ -41,22 +28,22 @@ def get_colors(row):
41
  return 'black'
42
 
43
  df[['lat', 'lon', 'adress']] = df.apply(get_lat_lon, axis=1, result_type='expand')
 
 
44
 
45
- viz_df = df[['lpu_name','lat', 'lon', 'adress', 'count_gp']].copy()
46
  viz_df[['lat','lon']] = viz_df[['lat','lon']].astype(float)
47
- viz_df['colors'] = viz_df['count_gp'].apply(get_colors)
48
 
49
- text_series ="Название клиники: "+ viz_df['lpu_name'] + "<br>" + "Адрес: " + viz_df["adress"] + "<br>" + "Количество гарантийных писем:" + viz_df['count_gp'].astype(str)
50
- #%%
51
  fig_bubbles_coords = go.Figure(data=go.Scattermapbox(
52
  lat=viz_df['lat'],
53
  lon=viz_df['lon'],
54
  mode='markers',
55
  marker=go.scattermapbox.Marker(
56
- size=viz_df['count_gp'],
57
  color='red',
58
  sizemode='area',
59
- sizeref=10,
60
  opacity=0.6
61
  ),
62
  text=text_series,
@@ -75,14 +62,12 @@ fig_bubbles_coords.update_layout(
75
  height=900
76
  )
77
 
78
- # fig_bubbles_coords.show()
79
- #%%
80
  fig_bubbles = go.Figure(data=go.Scattermapbox(
81
  lat=viz_df['lat'],
82
  lon=viz_df['lon'],
83
  mode='markers',
84
  marker=go.scattermapbox.Marker(
85
- size=viz_df['count_gp'],
86
  color='red',
87
  sizemode='area',
88
  sizeref=5,
@@ -106,19 +91,17 @@ fig_bubbles.update_layout(
106
 
107
  fig_bubbles.update_traces(hovertemplate='<b>%{customdata}</b>')
108
 
109
- # fig_bubbles.show()
110
- #%%
111
  fig_heatbar = go.Figure(data=go.Scattermapbox(
112
  lat=viz_df['lat'],
113
  lon=viz_df['lon'],
114
  mode='markers',
115
  marker=go.scattermapbox.Marker(
116
- color=viz_df['count_gp'],
117
  sizemode='area',
118
  sizeref=5,
119
  opacity=1,
120
  colorscale='rdylbu', # Градиент цветов от светло-синего до темно-синего
121
- colorbar=dict(title='count_gp')
122
  ),
123
  customdata=text_series,
124
  ))
@@ -138,29 +121,26 @@ fig_heatbar.update_layout(
138
 
139
  fig_heatbar.update_traces(hovertemplate='<b>%{customdata}</b>')
140
 
141
- # fig_heatbar.show()
142
- #%%
143
- dct_colors = {'red':'больше 6000',
144
- 'blue':'6000-3000',
145
- 'yellow':'3000-1000',
146
- # 'green':'400-200',
147
- # 'purple':'200-100',
148
- # 'orange':'100-30',
149
- 'black':'меньше 1000'
150
- }
151
  colors = ['red',
152
- 'blue',
153
- 'yellow',
154
- # 'green',
155
- # 'purple',
156
- # 'orange',
157
  'black']
158
 
159
  fig_colored = go.Figure()
160
 
161
  for color in colors:
162
  temp_df = viz_df[viz_df['colors'] == color]
163
- text_series_temp = "Название клиники: "+ temp_df['lpu_name'] + "<br>" + "Адрес: " + temp_df["adress"] + "<br>" + "Количество гарантийных писем:" + temp_df['count_gp'].astype(str)
164
  fig_colored.add_trace(go.Scattermapbox(
165
  lat=temp_df['lat'],
166
  lon=temp_df['lon'],
@@ -190,14 +170,11 @@ fig_colored.update_layout(
190
  )
191
  fig_colored.update_traces(hovertemplate='<b>%{customdata}</b>')
192
 
 
193
 
194
- # fig_colored.show()
195
- # %%
196
- viz_df = viz_df.rename(columns={"count_gp":"Число_ГП"})
197
- #%%
198
- st.dataframe(data=viz_df[['lpu_name', 'Число_ГП', 'adress']])
199
- # st.plotly_chart(fig_bubbles_coords)
200
  st.plotly_chart(fig_bubbles)
201
  st.plotly_chart(fig_heatbar)
202
  st.plotly_chart(fig_colored)
203
- # st.table(df)
 
 
 
1
  import pandas as pd
2
  import streamlit as st
3
  import plotly.graph_objects as go
4
 
5
+ df = pd.read_excel("data/geo_data/result.xlsx")
6
  def get_lat_lon(row):
7
  row = eval(row['result_dadata'])[0]
8
  lat = row['geo_lat']
 
11
 
12
  return lat, lon, adress
13
 
 
 
 
 
 
 
 
 
 
 
 
 
14
  def get_colors(row):
15
+ if row > 10000:
16
  return 'red'
17
+ elif row <= 10000 and row > 4000:
18
  return 'blue'
19
+ elif row <= 4000 and row > 2000:
20
  return 'yellow'
21
+ # elif row <= 2000 and row > 1000:
22
  # return 'green'
23
  # elif row <= 200 and row > 100:
24
  # return 'purple'
 
28
  return 'black'
29
 
30
  df[['lat', 'lon', 'adress']] = df.apply(get_lat_lon, axis=1, result_type='expand')
31
+ viz_df = df[['lpu_name','lat', 'lon', 'adress', 'MT_SUM_RUR']].copy()
32
+ viz_df['MT_SUM_RUR'] = viz_df['MT_SUM_RUR']/1000
33
 
 
34
  viz_df[['lat','lon']] = viz_df[['lat','lon']].astype(float)
35
+ viz_df['colors'] = viz_df['MT_SUM_RUR'].apply(get_colors)
36
 
37
+ text_series ="Название клиники: "+ viz_df['lpu_name'] + "<br>" + "Адрес: " + viz_df["adress"] + "<br>" + "Сумма:" + viz_df['MT_SUM_RUR'].astype(str) + " тыс.руб"
 
38
  fig_bubbles_coords = go.Figure(data=go.Scattermapbox(
39
  lat=viz_df['lat'],
40
  lon=viz_df['lon'],
41
  mode='markers',
42
  marker=go.scattermapbox.Marker(
43
+ size=viz_df['MT_SUM_RUR'],
44
  color='red',
45
  sizemode='area',
46
+ sizeref=5,
47
  opacity=0.6
48
  ),
49
  text=text_series,
 
62
  height=900
63
  )
64
 
 
 
65
  fig_bubbles = go.Figure(data=go.Scattermapbox(
66
  lat=viz_df['lat'],
67
  lon=viz_df['lon'],
68
  mode='markers',
69
  marker=go.scattermapbox.Marker(
70
+ size=viz_df['MT_SUM_RUR'],
71
  color='red',
72
  sizemode='area',
73
  sizeref=5,
 
91
 
92
  fig_bubbles.update_traces(hovertemplate='<b>%{customdata}</b>')
93
 
 
 
94
  fig_heatbar = go.Figure(data=go.Scattermapbox(
95
  lat=viz_df['lat'],
96
  lon=viz_df['lon'],
97
  mode='markers',
98
  marker=go.scattermapbox.Marker(
99
+ color=viz_df['MT_SUM_RUR'],
100
  sizemode='area',
101
  sizeref=5,
102
  opacity=1,
103
  colorscale='rdylbu', # Градиент цветов от светло-синего до темно-синего
104
+ colorbar=dict(title='MT_SUM_RUR')
105
  ),
106
  customdata=text_series,
107
  ))
 
121
 
122
  fig_heatbar.update_traces(hovertemplate='<b>%{customdata}</b>')
123
 
124
+ dct_colors = {'red':'больше 10000',
125
+ 'blue':'10000-4000',
126
+ 'yellow':'4000-2000',
127
+ # 'green':'400-200',
128
+ # 'purple':'200-100',
129
+ # 'orange':'100-30',
130
+ 'black':'меньше 2000'}
 
 
 
131
  colors = ['red',
132
+ 'blue',
133
+ 'yellow',
134
+ # 'green',
135
+ # 'purple',
136
+ # 'orange',
137
  'black']
138
 
139
  fig_colored = go.Figure()
140
 
141
  for color in colors:
142
  temp_df = viz_df[viz_df['colors'] == color]
143
+ text_series_temp = "Название клиники: "+ temp_df['lpu_name'] + "<br>" + "Адрес: " + temp_df["adress"] + "<br>" + "Сумма: " + temp_df['MT_SUM_RUR'].astype(str) + " тыс.руб"
144
  fig_colored.add_trace(go.Scattermapbox(
145
  lat=temp_df['lat'],
146
  lon=temp_df['lon'],
 
170
  )
171
  fig_colored.update_traces(hovertemplate='<b>%{customdata}</b>')
172
 
173
+ viz_df = viz_df.rename(columns={"MT_SUM_RUR":"Сумма"})
174
 
175
+ st.dataframe(data=viz_df[['lpu_name', 'Сумма', 'adress']])
 
 
 
 
 
176
  st.plotly_chart(fig_bubbles)
177
  st.plotly_chart(fig_heatbar)
178
  st.plotly_chart(fig_colored)
179
+
180
+ # %%