BC results per consumer

This commit is contained in:
2026-02-02 22:59:26 +01:00
parent bda4d54231
commit 3ac330263f
5 changed files with 467 additions and 345 deletions

View File

@@ -1,6 +1,6 @@
import marimo
__generated_with = "0.19.2"
__generated_with = "0.19.7"
app = marimo.App(width="full")
with app.setup:
@@ -285,14 +285,22 @@ def _(S, char_rank):
return
@app.cell
def _():
mo.md(r"""
### Statistical Significance Character Ranking
""")
return
@app.cell
def _(S, char_rank):
_pairwise_df, _meta = S.compute_ranking_significance(char_rank)
print(_pairwise_df.columns)
# print(_pairwise_df.columns)
mo.md(f"""
### Statistical Significance Character Ranking
{mo.ui.altair_chart(S.plot_significance_heatmap(_pairwise_df, metadata=_meta))}
@@ -389,10 +397,10 @@ def _(S, char_df):
"""
mo.md(_content)
return
return character_colors, consistent_sort_order
@app.cell
@app.cell(hide_code=True)
def _():
mo.md(r"""
## Statistical significance best characters
@@ -427,19 +435,136 @@ def _(S, data):
_plot = S.plot_weighted_ranking_score(
_char_rank_weighted,
title=f'Most Popular Character - Weighted Popularity Score - CONSUMER: "{_consumer_group.replace()}"<br>(1st=3pts, 2nd=2pts, 3rd=1pt)',
title=f'Most Popular Character - Weighted Popularity Score - CONSUMER: "{_consumer_group.replace("_", " ").replace("Woth", 'Worth')}"<br>(1st=3pts, 2nd=2pts, 3rd=1pt)',
x_label='Voice'
)
_content += f"""
{mo.ui.altair_chart(_plot)}
"""
mo.md(_content)
return
@app.cell
def _():
mo.md(r"""
## Character Ranking Place 1-2-3 in one (per consumer)
""")
return
@app.cell
def _(S, data):
_content = ""
for _consumer_group, _consumer_df in utils.split_consumer_groups(data).items():
_char_rank = S.get_character_ranking(_consumer_df)[0]
_plot = S.plot_top3_ranking_distribution(_char_rank, x_label='Character Personality', title='Character Personality: Rankings Top 3 - CONSUMER: "'+_consumer_group.replace("_", " ").replace("Woth", 'Worth')+'"')
_content += f"""
{mo.ui.altair_chart(_plot)}
"""
mo.md(_content)
return
@app.cell
def _():
mo.md(r"""
## Character Ranking times 1st place (per consumer)
""")
return
@app.cell
def _(S, data):
_content = ""
for _consumer_group, _consumer_df in utils.split_consumer_groups(data).items():
_char_rank = S.get_character_ranking(_consumer_df)[0]
_plot = S.plot_most_ranked_1(_char_rank, title=f'Most Popular Character - CONSUMER: "{_consumer_group.replace("_", " ").replace("Woth", 'Worth')}"<br>(Number of Times Ranked 1st)', x_label='Character Personality')
_content += f"""
{mo.ui.altair_chart(_plot)}
"""
mo.md(_content)
return
@app.cell
def _():
mo.md(r"""
## Predefined personality traits WordClouds per Consumer
""")
return
@app.cell
def _(S, data):
_content = ""
for _consumer_group, _consumer_df in utils.split_consumer_groups(data).items():
_top8_traits = S.get_top_8_traits(_consumer_df)[0]
_plot = S.plot_traits_wordcloud(
data=_top8_traits,
column='Top_8_Traits',
title=f'Most Prominent Personality Traits - CONSUMER: "{_consumer_group.replace("_", " ").replace("Woth", "Worth")}"',
)
_content += f"""
{_plot}
"""
mo.md(_content)
return
@app.cell
def _():
mo.md(r"""
## Frequency traits chosen - per consumer segment
""")
return
@app.cell
def _(S, character_colors, consistent_sort_order, data):
top_char = "The Coach"
_content = ""
for _consumer_group, _consumer_df in utils.split_consumer_groups(data).items():
_char_df = S.get_character_refine(_consumer_df)[0]
_freq_df, _ = S.transform_character_trait_frequency(_char_df, top_char)
_main_color, _highlight_color = character_colors[top_char]
_chart = S.plot_single_character_trait_frequency(
data=_freq_df,
character_name=top_char,
bar_color=_main_color,
highlight_color=_highlight_color,
trait_sort_order=consistent_sort_order,
title=f"""Top Personality Traits for '{top_char}' - CONSUMER: "{_consumer_group.replace('_', ' ').replace("Woth", "Worth")}"""
)
_content += f"""
{mo.ui.altair_chart(_chart)}
"""
mo.md(_content)
return
@app.cell(hide_code=True)
def _():
mo.md(r"""
@@ -614,7 +739,6 @@ def _(S, voice_1_10):
{mo.ui.altair_chart(_summary)}
""")
return