Skip to course content
Free data visualization course

Data Visualization and Dashboard Storytelling

Unit 13.02: Critiquing your own charts against the checklist

Run the checklist against your own charts before showing them to anyone.

Eight checks, and the ones that usually fail

The full critique checklist applied to a finished set of charts.

The code reports which pass.

CHECKLIST = [
    ("does the title state the finding, not the contents?", True),
    ("are units, scope and period on the chart?",           True),
    ("do bars start at zero?",                              True),
    ("is the sort order the one the question implies?",     True),
    ("would it survive being printed in greyscale?",        False),
    ("is every colour carrying meaning?",                   True),
    ("is the sample size visible where it is small?",       False),
    ("is there exactly one thing the eye reaches first?",   True),
]
print(f"{'check':56} passes?")
for check, ok in CHECKLIST:
    print(f"{check:56} {'yes' if ok else 'NO'}")

failed = [c for c, ok in CHECKLIST if not ok]
print(f"\n{len(failed)} failing: {failed}")
print("Run this against your own charts before showing them to anyone.")

The two failing here are the two that usually fail: greyscale survival and visible sample size. Both are invisible on the screen where the chart was built, and both surface later - in a printed handout, or when someone asks how many observations a category has.

Everything else on the list was covered in an earlier module, which is what makes the checklist worth running rather than re-deriving.

The mistake this prevents

The mistake is running the checklist after the review meeting, on the charts that were criticised. Run it on everything before the meeting - the defects it finds are cheap to fix and expensive to be told about.

Takeaway

Run the checklist before showing anyone. Greyscale survival and visible sample size are the two that fail most often and are invisible on your own screen.