diff --git a/03_quant_report.script.py b/03_quant_report.script.py
index bef3975..ea0f1ca 100644
--- a/03_quant_report.script.py
+++ b/03_quant_report.script.py
@@ -257,17 +257,17 @@ mo.md(r"""
""")
# %%
-_pairwise_df, _meta = S.compute_ranking_significance(char_rank)
+# _pairwise_df, _meta = S.compute_ranking_significance(char_rank)
-# print(_pairwise_df.columns)
+# # print(_pairwise_df.columns)
-mo.md(f"""
+# mo.md(f"""
-{mo.ui.altair_chart(S.plot_significance_heatmap(_pairwise_df, metadata=_meta))}
+# {mo.ui.altair_chart(S.plot_significance_heatmap(_pairwise_df, metadata=_meta))}
-{mo.ui.altair_chart(S.plot_significance_summary(_pairwise_df, metadata=_meta))}
-""")
+# {mo.ui.altair_chart(S.plot_significance_summary(_pairwise_df, metadata=_meta))}
+# """)
# %%
mo.md(r"""
@@ -463,34 +463,34 @@ mo.md(r"""
# %%
# Compute pairwise significance tests
-pairwise_df, metadata = S.compute_pairwise_significance(
- voice_1_10,
- test_type="mannwhitney", # or "ttest", "chi2", "auto"
- alpha=0.05,
- correction="bonferroni" # or "holm", "none"
-)
+# pairwise_df, metadata = S.compute_pairwise_significance(
+# voice_1_10,
+# test_type="mannwhitney", # or "ttest", "chi2", "auto"
+# alpha=0.05,
+# correction="bonferroni" # or "holm", "none"
+# )
-# View significant pairs
-# print(pairwise_df.filter(pl.col('significant') == True))
+# # View significant pairs
+# # print(pairwise_df.filter(pl.col('significant') == True))
-# Create heatmap visualization
-_heatmap = S.plot_significance_heatmap(
- pairwise_df,
- metadata=metadata,
- title="Voice Rating Significance
(Pairwise Comparisons)"
-)
+# # Create heatmap visualization
+# _heatmap = S.plot_significance_heatmap(
+# pairwise_df,
+# metadata=metadata,
+# title="Voice Rating Significance
(Pairwise Comparisons)"
+# )
-# Create summary bar chart
-_summary = S.plot_significance_summary(
- pairwise_df,
- metadata=metadata
-)
+# # Create summary bar chart
+# _summary = S.plot_significance_summary(
+# pairwise_df,
+# metadata=metadata
+# )
-mo.md(f"""
-{mo.ui.altair_chart(_heatmap)}
+# mo.md(f"""
+# {mo.ui.altair_chart(_heatmap)}
-{mo.ui.altair_chart(_summary)}
-""")
+# {mo.ui.altair_chart(_summary)}
+# """)
# %%
diff --git a/plots.py b/plots.py
index 76cb41f..2321c68 100644
--- a/plots.py
+++ b/plots.py
@@ -1305,6 +1305,16 @@ class QualtricsPlotsMixin:
# Create frequency dictionary
trait_freq = Counter(traits_list)
+ # Handle empty data gracefully - return empty figure with message
+ if not trait_freq:
+ fig, ax = plt.subplots(figsize=(width/100, height/100), dpi=100)
+ ax.text(0.5, 0.5, "No trait data available for current filter",
+ ha='center', va='center', fontsize=14, color='gray',
+ transform=ax.transAxes)
+ ax.axis('off')
+ ax.set_title(title, fontsize=16, pad=20, color=ColorPalette.TEXT)
+ return fig
+
# Set random seed for color selection
random.seed(random_state)
@@ -1335,7 +1345,15 @@ class QualtricsPlotsMixin:
fig, ax = plt.subplots(figsize=(width/100, height/100), dpi=100)
ax.imshow(wordcloud, interpolation='bilinear')
ax.axis('off')
- ax.set_title(title, fontsize=16, pad=20, color=ColorPalette.TEXT)
+
+ # Add title with filter subtitle (similar to _add_filter_footnote for Altair charts)
+ filter_text = self._get_filter_description()
+ if filter_text:
+ # Title on top, filter subtitle below in light grey
+ fig.suptitle(title, fontsize=16, y=0.98, color=ColorPalette.TEXT)
+ ax.set_title(filter_text, fontsize=10, pad=10, color='lightgrey', loc='left')
+ else:
+ ax.set_title(title, fontsize=16, pad=20, color=ColorPalette.TEXT)
plt.tight_layout(pad=0)