cyberosa commited on
Commit
09ddc82
·
1 Parent(s): f0f1e9a

DAA graphs based on Dune data

Browse files
Files changed (2) hide show
  1. app.py +42 -47
  2. tabs/daily_graphs.py +21 -1
app.py CHANGED
@@ -33,7 +33,7 @@ from tabs.daily_graphs import (
33
  plot_daily_metrics,
34
  trader_daily_metric_choices,
35
  default_daily_metric,
36
- plot_rolling_average,
37
  )
38
  from scripts.utils import get_traders_family
39
  from tabs.market_plots import (
@@ -137,14 +137,21 @@ def load_all_data():
137
  )
138
  df7 = pd.read_parquet(all_mech_calls_df)
139
 
140
- # gnosis_txs_dataset.parquet
141
- gnosis_txs_df = hf_hub_download(
142
  repo_id="valory/Olas-predict-dataset",
143
- filename="gnosis_txs_dataset.parquet",
144
  repo_type="dataset",
145
  )
146
- df8 = pd.read_parquet(gnosis_txs_df)
147
- return df1, df2, df3, df4, df5, df6, df7, df8
 
 
 
 
 
 
 
148
 
149
 
150
  def prepare_data():
@@ -157,7 +164,8 @@ def prepare_data():
157
  retention_df,
158
  active_traders,
159
  all_mech_calls,
160
- gnosis_txs_df,
 
161
  ) = load_all_data()
162
  all_trades["creation_timestamp"] = all_trades["creation_timestamp"].dt.tz_convert(
163
  "UTC"
@@ -204,40 +212,27 @@ def prepare_data():
204
  .dt.start_time.dt.strftime("%b-%d-%Y")
205
  )
206
 
207
- # prepare daa dataset concatenating all_trades and gnosis_txs_df
208
- selected_trades = all_trades[all_trades["staking"] != "non_Olas"].copy(deep=True)
209
- selected_trades = selected_trades[
210
- [
211
- "market_creator",
212
- "trader_address",
213
- "creation_timestamp",
214
- ]
215
- ]
216
- selected_trades.drop_duplicates(inplace=True)
217
- selected_trades["tx_date"] = pd.to_datetime(
218
- selected_trades["creation_timestamp"].dt.date, format="%b-%d-%Y"
219
  )
220
-
221
- gnosis_txs_df["tx_date"] = pd.to_datetime(gnosis_txs_df["tx_datetime"]).dt.date
222
- gnosis_txs_df = gnosis_txs_df[
223
- [
224
- "trader_address",
225
- "tx_date",
226
- "market_creator",
227
- ]
228
- ]
229
- gnosis_txs_df["tx_date"] = pd.to_datetime(
230
- gnosis_txs_df["tx_date"], format="%b-%d-%Y"
231
  )
232
- selected_trades = selected_trades[
233
- [
234
- "trader_address",
235
- "tx_date",
236
- "market_creator",
237
- ]
238
- ]
239
- daa_df = pd.concat([selected_trades, gnosis_txs_df], ignore_index=True)
240
- daa_df.drop_duplicates(inplace=True)
241
  return (
242
  traders_data,
243
  closed_markets,
@@ -246,7 +241,8 @@ def prepare_data():
246
  retention_df,
247
  active_traders,
248
  all_mech_calls,
249
- daa_df,
 
250
  )
251
 
252
 
@@ -258,7 +254,8 @@ def prepare_data():
258
  raw_retention_df,
259
  active_traders,
260
  all_mech_calls,
261
- daa_df,
 
262
  ) = prepare_data()
263
 
264
  retention_df = prepare_retention_dataset(
@@ -690,16 +687,14 @@ with demo:
690
  with gr.Row():
691
  gr.Markdown(" # Daily active agents in Pearl markets")
692
  with gr.Row():
693
- rolling_avg_plot = plot_rolling_average(
694
- daa_df,
695
- market_creator="pearl",
696
  )
697
  with gr.Row():
698
  gr.Markdown(" # Daily active agents in QS markets")
699
  with gr.Row():
700
- rolling_avg_plot = plot_rolling_average(
701
- daa_df,
702
- market_creator="quickstart",
703
  )
704
 
705
  with gr.TabItem("📉 Markets Kullback–Leibler divergence"):
 
33
  plot_daily_metrics,
34
  trader_daily_metric_choices,
35
  default_daily_metric,
36
+ plot_rolling_average_dune,
37
  )
38
  from scripts.utils import get_traders_family
39
  from tabs.market_plots import (
 
137
  )
138
  df7 = pd.read_parquet(all_mech_calls_df)
139
 
140
+ # daa for quickstart and pearl
141
+ daa_qs_df = hf_hub_download(
142
  repo_id="valory/Olas-predict-dataset",
143
+ filename="latest_result_DAA_QS.parquet",
144
  repo_type="dataset",
145
  )
146
+ df8 = pd.read_parquet(daa_qs_df)
147
+
148
+ daa_pearl_df = hf_hub_download(
149
+ repo_id="valory/Olas-predict-dataset",
150
+ filename="latest_result_DAA_Pearl.parquet",
151
+ repo_type="dataset",
152
+ )
153
+ df9 = pd.read_parquet(daa_pearl_df)
154
+ return df1, df2, df3, df4, df5, df6, df7, df8, df9
155
 
156
 
157
  def prepare_data():
 
164
  retention_df,
165
  active_traders,
166
  all_mech_calls,
167
+ daa_qs_df,
168
+ daa_pearl_df,
169
  ) = load_all_data()
170
  all_trades["creation_timestamp"] = all_trades["creation_timestamp"].dt.tz_convert(
171
  "UTC"
 
212
  .dt.start_time.dt.strftime("%b-%d-%Y")
213
  )
214
 
215
+ # prepare the daa dataframes
216
+ daa_pearl_df["day"] = pd.to_datetime(
217
+ daa_pearl_df["day"], format="%Y-%m-%d 00:00:00.000 UTC"
 
 
 
 
 
 
 
 
 
218
  )
219
+ daa_qs_df["day"] = pd.to_datetime(
220
+ daa_qs_df["day"], format="%Y-%m-%d 00:00:00.000 UTC"
221
+ )
222
+ daa_pearl_df["day"] = daa_pearl_df["day"].dt.tz_localize("UTC")
223
+ daa_qs_df["day"] = daa_qs_df["day"].dt.tz_localize("UTC")
224
+ daa_qs_df["tx_date"] = pd.to_datetime(daa_qs_df["day"]).dt.date
225
+ daa_pearl_df["tx_date"] = pd.to_datetime(daa_pearl_df["day"]).dt.date
226
+ daa_pearl_df["seven_day_trailing_avg"] = pd.to_numeric(
227
+ daa_pearl_df["seven_day_trailing_avg"], errors="coerce"
 
 
228
  )
229
+ daa_pearl_df["seven_day_trailing_avg"] = daa_pearl_df[
230
+ "seven_day_trailing_avg"
231
+ ].round(2)
232
+ daa_qs_df["seven_day_trailing_avg"] = pd.to_numeric(
233
+ daa_qs_df["seven_day_trailing_avg"], errors="coerce"
234
+ )
235
+ daa_qs_df["seven_day_trailing_avg"] = daa_qs_df["seven_day_trailing_avg"].round(2)
 
 
236
  return (
237
  traders_data,
238
  closed_markets,
 
241
  retention_df,
242
  active_traders,
243
  all_mech_calls,
244
+ daa_qs_df,
245
+ daa_pearl_df,
246
  )
247
 
248
 
 
254
  raw_retention_df,
255
  active_traders,
256
  all_mech_calls,
257
+ daa_qs_df,
258
+ daa_pearl_df,
259
  ) = prepare_data()
260
 
261
  retention_df = prepare_retention_dataset(
 
687
  with gr.Row():
688
  gr.Markdown(" # Daily active agents in Pearl markets")
689
  with gr.Row():
690
+ rolling_avg_plot = plot_rolling_average_dune(
691
+ daa_pearl_df,
 
692
  )
693
  with gr.Row():
694
  gr.Markdown(" # Daily active agents in QS markets")
695
  with gr.Row():
696
+ rolling_avg_plot = plot_rolling_average_dune(
697
+ daa_qs_df,
 
698
  )
699
 
700
  with gr.TabItem("📉 Markets Kullback–Leibler divergence"):
tabs/daily_graphs.py CHANGED
@@ -265,7 +265,7 @@ def plot_rolling_average(
265
  print(rolling_avg_df.head())
266
 
267
  # Ensure 'creation_date' is a column, not an index
268
- if "creation_date" not in rolling_avg_df.columns:
269
  rolling_avg_df = rolling_avg_df.reset_index()
270
 
271
  fig = px.bar(
@@ -281,3 +281,23 @@ def plot_rolling_average(
281
  return gr.Plot(
282
  value=fig,
283
  )
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
265
  print(rolling_avg_df.head())
266
 
267
  # Ensure 'creation_date' is a column, not an index
268
+ if "tx_date" not in rolling_avg_df.columns:
269
  rolling_avg_df = rolling_avg_df.reset_index()
270
 
271
  fig = px.bar(
 
281
  return gr.Plot(
282
  value=fig,
283
  )
284
+
285
+
286
+ def plot_rolling_average_dune(
287
+ daa_df: pd.DataFrame,
288
+ ) -> gr.Plot:
289
+ """Function to plot the rolling average of daily active traders"""
290
+
291
+ fig = px.bar(
292
+ daa_df,
293
+ x="tx_date",
294
+ y="seven_day_trailing_avg",
295
+ )
296
+ fig.update_layout(
297
+ xaxis_title="Date",
298
+ yaxis_title="7-day rolling average of DAA",
299
+ )
300
+
301
+ return gr.Plot(
302
+ value=fig,
303
+ )