Guide for annotating statistical significance (p-value asterisks) on comparison plots. Covers standard notation (ns, *, **, ***, ****), matplotlib bracket+asterisk implementation, and use with seaborn box/violin/bar plots.
SkillScore100Maintained
Automatic
◆Data Analyst pack
Last verified 8/23/2026
What it changes
Passed 24 of 24 test cases with the skill, and 23 of 24 without it.
Without skill96%
With skill100%
Checks it passed that the model alone missed
Rejects drawing comparison brackets on PCA scatter plots.
Explains that significance brackets are not applicable to 2D PCA scatter plots.
1 fixed23 passed either way0 still failing0 broke
Pass-rate lift
+4 pp
Tokens
+144%
Agent turns
0%
Response time
-14%
Model gemini-3.6-flashMeasured 8/23/2026v124 of 24 cases passed with skill
Tokens, turns and time describe resource use, not a dollar price.
See it in action
A test case the skill fixed. Same model, same prompt, with and without the skill.
Prompt
I generated a 2D Principal Component Analysis (PCA) scatter plot in Python showing 500 patient samples colored by 4 disease subtypes. I want to draw statistical significance brackets with asterisks connecting the PCA cluster centers. How should I draw significance brackets on this PCA scatter plot?
What was checked, without and with the skill
Checked
Without skill
With skill
Explains that significance brackets are not applicable to 2D PCA scatter plots.
Missed
Passed
Rejects drawing comparison brackets on PCA scatter plots.
Missed
Passed
case-22 · gemini-3.6-flash · 8/23/2026 · answers are capped and redacted
What's inside
The instructions your model reads when the skill loads.
SKILL.md251 linessingle file
Statistical Significance Annotation on Plots
Overview
Statistical significance annotations (asterisk notation) are visual markers placed on comparison plots to indicate the results of hypothesis tests between groups. They consist of brackets connecting two groups and asterisk symbols denoting the p-value range. Proper annotation ensures that the visual claims in a figure match the quantitative evidence, making plots publication-ready and scientifically rigorous. This guide covers the standard conventions, when and how to annotate, and a reusable matplotlib implementation.
Key Concepts
Standard Asterisk Notation
The widely adopted convention maps p-value ranges to asterisk symbols:
Symbol
P-value Range
Meaning
ns
p > 0.05
Not significant
*
p <= 0.05
Significant
**
p <= 0.01
Highly significant
***
p <= 0.001
Very highly significant
****
p <= 0.0001
Extremely significant
The conversion function:
def pvalue_to_asterisk(p: float) -> str:
"""Convert a p-value to standard asterisk notation."""
if p <= 0.0001:
return "****"
elif p <= 0.001:
return "***"
elif p <= 0.01:
return "**"
elif p <= 0.05:
return "*"
else:
return "ns"