cyberosa
commited on
Commit
Β·
00d49a3
1
Parent(s):
3498a52
updating money invested tab with other level of aggregation
Browse files- app.py +9 -7
- tabs/trader_plots.py +35 -17
app.py
CHANGED
@@ -406,28 +406,30 @@ with demo:
|
|
406 |
with gr.Column(scale=1):
|
407 |
interpretation = get_interpretation_text()
|
408 |
|
409 |
-
with gr.TabItem("π° Money invested per trader"):
|
410 |
with gr.Row():
|
411 |
-
gr.Markdown("# Weekly total bet amount per trader for all
|
412 |
with gr.Row():
|
413 |
-
total_bet_amount = plot_total_bet_amount(
|
|
|
|
|
414 |
|
415 |
with gr.Row():
|
416 |
gr.Markdown(
|
417 |
-
"# Weekly total bet amount per trader for
|
418 |
)
|
419 |
with gr.Row():
|
420 |
a_trader_total_bet_amount = plot_total_bet_amount(
|
421 |
-
trader_agents_data,
|
422 |
)
|
423 |
|
424 |
with gr.Row():
|
425 |
gr.Markdown(
|
426 |
-
"# Weekly total bet amount per trader for
|
427 |
)
|
428 |
with gr.Row():
|
429 |
na_trader_total_bet_amount = plot_total_bet_amount(
|
430 |
-
trader_agents_data,
|
431 |
)
|
432 |
with gr.TabItem("π° Money invested per market"):
|
433 |
with gr.Row():
|
|
|
406 |
with gr.Column(scale=1):
|
407 |
interpretation = get_interpretation_text()
|
408 |
|
409 |
+
with gr.TabItem("π° Money invested per trader type"):
|
410 |
with gr.Row():
|
411 |
+
gr.Markdown("# Weekly total bet amount per trader type for all markets")
|
412 |
with gr.Row():
|
413 |
+
total_bet_amount = plot_total_bet_amount(
|
414 |
+
trader_agents_data, market_filter="all"
|
415 |
+
)
|
416 |
|
417 |
with gr.Row():
|
418 |
gr.Markdown(
|
419 |
+
"# Weekly total bet amount per trader type for Pearl markets"
|
420 |
)
|
421 |
with gr.Row():
|
422 |
a_trader_total_bet_amount = plot_total_bet_amount(
|
423 |
+
trader_agents_data, market_filter="pearl"
|
424 |
)
|
425 |
|
426 |
with gr.Row():
|
427 |
gr.Markdown(
|
428 |
+
"# Weekly total bet amount per trader type for Quickstart markets"
|
429 |
)
|
430 |
with gr.Row():
|
431 |
na_trader_total_bet_amount = plot_total_bet_amount(
|
432 |
+
trader_agents_data, market_filter="quickstart"
|
433 |
)
|
434 |
with gr.TabItem("π° Money invested per market"):
|
435 |
with gr.Row():
|
tabs/trader_plots.py
CHANGED
@@ -1,6 +1,7 @@
|
|
1 |
import gradio as gr
|
2 |
import pandas as pd
|
3 |
import plotly.express as px
|
|
|
4 |
|
5 |
trader_metric_choices = [
|
6 |
"mech calls",
|
@@ -176,7 +177,7 @@ def plot_winning_metric_per_trader(traders_winning_df: pd.DataFrame) -> gr.Plot:
|
|
176 |
|
177 |
|
178 |
def plot_total_bet_amount(
|
179 |
-
trades_df: pd.DataFrame,
|
180 |
) -> gr.Plot:
|
181 |
"""Plots the trade metrics."""
|
182 |
traders_all = trades_df.copy(deep=True)
|
@@ -190,37 +191,54 @@ def plot_total_bet_amount(
|
|
190 |
lambda x: "non_agent" if x == "non_agent" else "agent"
|
191 |
)
|
192 |
|
193 |
-
color_discrete_sequence = ["purple", "goldenrod", "darkgreen"]
|
194 |
-
if trader_filter == "agent":
|
195 |
-
color_discrete_sequence = ["darkviolet", "goldenrod", "green"]
|
196 |
-
final_traders = final_traders.loc[final_traders["trader_type"] == "agent"]
|
197 |
-
elif trader_filter == "non_agent":
|
198 |
-
final_traders = final_traders.loc[final_traders["trader_type"] != "agent"]
|
199 |
-
|
200 |
total_bet_amount = (
|
201 |
final_traders.groupby(
|
202 |
-
["month_year_week", "market_creator", "
|
203 |
)["collateral_amount"]
|
204 |
.sum()
|
205 |
.reset_index(name="total_bet_amount")
|
206 |
)
|
207 |
-
|
208 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
209 |
total_bet_amount,
|
210 |
x="month_year_week",
|
211 |
y="total_bet_amount",
|
212 |
-
color="
|
213 |
-
color_discrete_sequence=
|
214 |
category_orders={
|
215 |
"market_creator": ["pearl", "quickstart", "all"],
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
216 |
},
|
217 |
-
|
218 |
-
# facet_col="market_creator",
|
219 |
)
|
220 |
-
|
221 |
fig.update_layout(
|
222 |
xaxis_title="Week",
|
223 |
-
yaxis_title="Weekly total bet amount",
|
224 |
legend=dict(yanchor="top", y=0.5),
|
225 |
)
|
226 |
# for axis in fig.layout:
|
|
|
1 |
import gradio as gr
|
2 |
import pandas as pd
|
3 |
import plotly.express as px
|
4 |
+
from tabs.market_plots import color_mapping
|
5 |
|
6 |
trader_metric_choices = [
|
7 |
"mech calls",
|
|
|
177 |
|
178 |
|
179 |
def plot_total_bet_amount(
|
180 |
+
trades_df: pd.DataFrame, market_filter: str = "all"
|
181 |
) -> gr.Plot:
|
182 |
"""Plots the trade metrics."""
|
183 |
traders_all = trades_df.copy(deep=True)
|
|
|
191 |
lambda x: "non_agent" if x == "non_agent" else "agent"
|
192 |
)
|
193 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
194 |
total_bet_amount = (
|
195 |
final_traders.groupby(
|
196 |
+
["month_year_week", "market_creator", "trader_type"], sort=False
|
197 |
)["collateral_amount"]
|
198 |
.sum()
|
199 |
.reset_index(name="total_bet_amount")
|
200 |
)
|
201 |
+
total_bet_amount["trader_market"] = total_bet_amount.apply(
|
202 |
+
lambda x: (x["trader_type"], x["market_creator"]), axis=1
|
203 |
+
)
|
204 |
+
color_discrete_sequence = ["purple", "goldenrod", "darkgreen"]
|
205 |
+
if market_filter == "pearl":
|
206 |
+
color_discrete_sequence = ["darkviolet", "goldenrod", "green"]
|
207 |
+
total_bet_amount = total_bet_amount.loc[
|
208 |
+
total_bet_amount["market_creator"] == "pearl"
|
209 |
+
]
|
210 |
+
elif market_filter == "quickstart":
|
211 |
+
total_bet_amount = total_bet_amount.loc[
|
212 |
+
total_bet_amount["market_creator"] == "quickstart"
|
213 |
+
]
|
214 |
+
else:
|
215 |
+
total_bet_amount = total_bet_amount.loc[
|
216 |
+
total_bet_amount["market_creator"] == "all"
|
217 |
+
]
|
218 |
+
|
219 |
+
fig = px.bar(
|
220 |
total_bet_amount,
|
221 |
x="month_year_week",
|
222 |
y="total_bet_amount",
|
223 |
+
color="trader_market",
|
224 |
+
color_discrete_sequence=color_mapping,
|
225 |
category_orders={
|
226 |
"market_creator": ["pearl", "quickstart", "all"],
|
227 |
+
"trader_market": [
|
228 |
+
("agent", "pearl"),
|
229 |
+
("non_agent", "pearl"),
|
230 |
+
("agent", "quickstart"),
|
231 |
+
("non_agent", "quickstart"),
|
232 |
+
("agent", "all"),
|
233 |
+
("non_agent", "all"),
|
234 |
+
],
|
235 |
},
|
236 |
+
barmode="group",
|
|
|
237 |
)
|
238 |
+
|
239 |
fig.update_layout(
|
240 |
xaxis_title="Week",
|
241 |
+
yaxis_title="Weekly total bet amount per trader type",
|
242 |
legend=dict(yanchor="top", y=0.5),
|
243 |
)
|
244 |
# for axis in fig.layout:
|