hkayabilisim commited on
Commit
73e2237
·
1 Parent(s): 108a09e

Added custom marker color and y-axis (only for 1D)

Browse files
Files changed (1) hide show
  1. app.py +34 -38
app.py CHANGED
@@ -28,9 +28,8 @@ df = solara.reactive(df_original[features.value].copy)
28
  @solara.component
29
  def process_data():
30
  df_out = df_original[features.value].copy()
31
- df_out = df_out.dropna() if drop_nans.value else df_out
32
  df_out = df_out.sample(frac=training_ratio.value/100.0, random_state=42)
33
- print('processing')
34
  info_string = ""
35
  for f in features.value:
36
  x = df_out[f].to_numpy()
@@ -52,9 +51,6 @@ def process_data():
52
  info_string = str(e)
53
  df.set(df_out)
54
  solara.DataFrame(df_out, items_per_page=5)
55
- #info_message.set(info_string)
56
-
57
-
58
 
59
  def reset():
60
  features.value = default_features
@@ -64,7 +60,6 @@ def reset():
64
  feature_maps[f].set('x')
65
  scaler.set('none')
66
 
67
-
68
  @solara.component
69
  def InfoBox():
70
  if len(info_message.value) > 0:
@@ -72,37 +67,30 @@ def InfoBox():
72
 
73
  @solara.component
74
  def BoxPlot():
75
- if df.value is None:
76
  return
77
  fig = Figure()
78
  ax = fig.subplots()
79
  df.value.plot.box(figsize=(20,5), ax=ax)
80
-
81
  ymin = min(df.value.min(numeric_only=True))
82
  ymax = max(df.value.max(numeric_only=True))
83
-
84
  yrange = solara.use_reactive((ymin, ymax))
85
  ax.set_ylim(yrange.value[0], yrange.value[1])
86
-
87
  solara.SliderRangeFloat("yrange min and max", value=yrange,min=ymin, max=ymax)
88
  solara.FigureMatplotlib(fig)
89
  solara.Markdown(f'{yrange}')
90
 
91
-
92
-
93
-
94
  @solara.component
95
  def EmbeddingPlot():
96
- print('embedding plot')
97
-
98
  embedding_method, set_embedding_method = solara.use_state('PCA')
99
  n_components, set_n_component = solara.use_state(2)
100
- #power_iteration_normalizer, set_power_iteration_normalizer = solara.use_state('auto')
101
  n_neighbors, set_n_neighbors = solara.use_state(5)
102
  lle_methods = ['standard', 'hessian', 'modified', 'ltsa']
103
  lle_method, set_lle_method = solara.use_state('standard')
104
  eigen_solver, set_eigen_solver = solara.use_state('auto')
105
  eigen_solver_se, set_eigen_solver_se = solara.use_state(None)
 
 
106
 
107
  with solara.Row():
108
  solara.ToggleButtonsSingle(value=embedding_method, values=['PCA','TSNE','ISOMAP','LLE','SE','MDS'], dense=True, on_value=set_embedding_method)
@@ -112,8 +100,6 @@ def EmbeddingPlot():
112
  solara.Select(label='eigen_solver (LLE, Isomap)', value=eigen_solver, values=['auto', 'arpack', 'dense'], on_value=set_eigen_solver)
113
  solara.Select(label='eigen_solver (SE)', value=eigen_solver_se, values=[None, 'arpack', 'lobpcg', 'amg'], on_value=set_eigen_solver_se)
114
 
115
-
116
-
117
  if embedding_method == 'PCA':
118
  embedder = PCA(n_components=n_components)
119
  elif embedding_method == 'SE':
@@ -139,18 +125,38 @@ def EmbeddingPlot():
139
  df_embedded = pd.DataFrame(data_embedded)
140
  df_embedded['pha'] = list(df_original.loc[df.value.index,'pha'])
141
  df_embedded['moid'] = list(df_original.loc[df.value.index,'moid'])
142
-
143
- print('embedding done')
144
-
145
- #print(df_embedded.head())
 
 
 
 
 
146
  if n_components == 1:
147
- fig = px.scatter(df_embedded, x=0, y='moid', color='pha', width=1024, height=768)
 
148
  elif n_components == 2:
149
- fig = px.scatter(df_embedded, x=0,y=1,color='pha', width=1024, height=768)
 
 
150
  elif n_components == 3:
151
- fig = px.scatter_3d(df_embedded, x=0,y=1,z=2,color='moid',symbol='pha', width=1024, height=768)
152
-
153
- solara.FigurePlotly(fig)
 
 
 
 
 
 
 
 
 
 
 
 
154
  except Exception as e:
155
  solara.Error(str(e))
156
 
@@ -174,18 +180,8 @@ def Page():
174
  solara.ToggleButtonsSingle(value=scaler, values=scalers)
175
  solara.SliderInt(label='Training Ratio %', value=training_ratio, min=1, max=99)
176
 
177
- #solara.Markdown(f"""
178
- # # Drop_nans: {drop_nans.value}
179
- # # trn_ratio {training_ratio.value}
180
- # # features: {features.value}
181
- # # scaler: {scaler.value}
182
- # # feature_maps: {feature_maps}
183
- # # info_message: {info_message.value}
184
- # """)
185
  InfoBox()
186
  EmbeddingPlot()
187
  BoxPlot()
188
-
189
-
190
- Page()
191
 
 
 
28
  @solara.component
29
  def process_data():
30
  df_out = df_original[features.value].copy()
 
31
  df_out = df_out.sample(frac=training_ratio.value/100.0, random_state=42)
32
+ df_out = df_out.dropna() if drop_nans.value else df_out
33
  info_string = ""
34
  for f in features.value:
35
  x = df_out[f].to_numpy()
 
51
  info_string = str(e)
52
  df.set(df_out)
53
  solara.DataFrame(df_out, items_per_page=5)
 
 
 
54
 
55
  def reset():
56
  features.value = default_features
 
60
  feature_maps[f].set('x')
61
  scaler.set('none')
62
 
 
63
  @solara.component
64
  def InfoBox():
65
  if len(info_message.value) > 0:
 
67
 
68
  @solara.component
69
  def BoxPlot():
70
+ if df.value is None or len(df.value) == 0:
71
  return
72
  fig = Figure()
73
  ax = fig.subplots()
74
  df.value.plot.box(figsize=(20,5), ax=ax)
 
75
  ymin = min(df.value.min(numeric_only=True))
76
  ymax = max(df.value.max(numeric_only=True))
 
77
  yrange = solara.use_reactive((ymin, ymax))
78
  ax.set_ylim(yrange.value[0], yrange.value[1])
 
79
  solara.SliderRangeFloat("yrange min and max", value=yrange,min=ymin, max=ymax)
80
  solara.FigureMatplotlib(fig)
81
  solara.Markdown(f'{yrange}')
82
 
 
 
 
83
  @solara.component
84
  def EmbeddingPlot():
 
 
85
  embedding_method, set_embedding_method = solara.use_state('PCA')
86
  n_components, set_n_component = solara.use_state(2)
 
87
  n_neighbors, set_n_neighbors = solara.use_state(5)
88
  lle_methods = ['standard', 'hessian', 'modified', 'ltsa']
89
  lle_method, set_lle_method = solara.use_state('standard')
90
  eigen_solver, set_eigen_solver = solara.use_state('auto')
91
  eigen_solver_se, set_eigen_solver_se = solara.use_state(None)
92
+ marker_color, set_marker_color = solara.use_state('pha')
93
+ y_axis, set_y_axis = solara.use_state('moid')
94
 
95
  with solara.Row():
96
  solara.ToggleButtonsSingle(value=embedding_method, values=['PCA','TSNE','ISOMAP','LLE','SE','MDS'], dense=True, on_value=set_embedding_method)
 
100
  solara.Select(label='eigen_solver (LLE, Isomap)', value=eigen_solver, values=['auto', 'arpack', 'dense'], on_value=set_eigen_solver)
101
  solara.Select(label='eigen_solver (SE)', value=eigen_solver_se, values=[None, 'arpack', 'lobpcg', 'amg'], on_value=set_eigen_solver_se)
102
 
 
 
103
  if embedding_method == 'PCA':
104
  embedder = PCA(n_components=n_components)
105
  elif embedding_method == 'SE':
 
125
  df_embedded = pd.DataFrame(data_embedded)
126
  df_embedded['pha'] = list(df_original.loc[df.value.index,'pha'])
127
  df_embedded['moid'] = list(df_original.loc[df.value.index,'moid'])
128
+ df_embedded['H'] = list(df_original.loc[df.value.index,'H'])
129
+ df_embedded['pdes'] = list(df_original.loc[df.value.index,'pdes'])
130
+ df_embedded['a'] = list(df_original.loc[df.value.index,'a'])
131
+ df_embedded['e'] = list(df_original.loc[df.value.index,'e'])
132
+ df_embedded['i'] = list(df_original.loc[df.value.index,'i'])
133
+ df_embedded['om'] = list(df_original.loc[df.value.index,'om'])
134
+ df_embedded['w'] = list(df_original.loc[df.value.index,'w'])
135
+
136
+ df_embedded_clean = df_embedded.dropna()
137
  if n_components == 1:
138
+ fig = px.scatter(df_embedded, x=0, y=y_axis, color=marker_color,
139
+ hover_name='pdes',width=1024, height=768)
140
  elif n_components == 2:
141
+
142
+ fig = px.scatter(df_embedded_clean, x=0,y=1,color=marker_color,
143
+ hover_name='pdes',width=1024, height=768)
144
  elif n_components == 3:
145
+ fig = px.scatter_3d(df_embedded, x=0,y=1,z=2,color=marker_color,
146
+ hover_name='pdes',width=1024, height=768)
147
+
148
+ with solara.Row():
149
+ with solara.Column():
150
+ solara.Select(label='Marker Color',
151
+ value=marker_color,
152
+ values=[None,'pha','moid','H','a','e','i','om','w'],
153
+ on_value=set_marker_color)
154
+ solara.Select(label='Y-Axis (only in 1D plot)',
155
+ value=y_axis,
156
+ values=['moid','H','a','e','i','om','w'],
157
+ on_value=set_y_axis)
158
+ solara.FigurePlotly(fig)
159
+
160
  except Exception as e:
161
  solara.Error(str(e))
162
 
 
180
  solara.ToggleButtonsSingle(value=scaler, values=scalers)
181
  solara.SliderInt(label='Training Ratio %', value=training_ratio, min=1, max=99)
182
 
 
 
 
 
 
 
 
 
183
  InfoBox()
184
  EmbeddingPlot()
185
  BoxPlot()
 
 
 
186
 
187
+ Page()