Skip to main content

Visualizing Data

Systematic guidance for selecting and implementing effective data visualizations, matching data characteristics with appropriate visualization types, ensuring clarity, accessibility, and impact.

When to Use

Use this skill when:

  • Creating visualizations or choosing chart types
  • Displaying data graphically in reports or dashboards
  • Building data-driven interfaces requiring analytics
  • Ensuring visualization accessibility (WCAG 2.1 AA)
  • Optimizing performance for large datasets
  • Implementing colorblind-safe palettes

Overview

Data visualization transforms raw data into visual representations that reveal patterns, trends, and insights. This skill provides:

  1. Selection Framework: Systematic decision trees from data type + purpose → chart type
  2. 24+ Visualization Methods: Organized by analytical purpose
  3. Accessibility Patterns: WCAG 2.1 AA compliance, colorblind-safe palettes
  4. Performance Strategies: Optimize for dataset size (<1000 to >100K points)
  5. Multi-Language Support: JavaScript/TypeScript (primary), Python, Rust, Go

Quick Start Workflow

3-Step Selection Process

  1. Assess Data: What type? [categorical | continuous | temporal | spatial | hierarchical]
  2. Determine Purpose: What story? [comparison | trend | distribution | relationship | composition]
  3. Select Chart Type: Match purpose to visualization

Quick Selection Guide

  • Compare 5-10 categories → Bar Chart
  • Show sales over 12 months → Line Chart
  • Display distribution of ages → Histogram or Violin Plot
  • Explore correlation → Scatter Plot
  • Show budget breakdown → Treemap or Stacked Bar

Purpose-First Selection

PurposeChart Types
Compare valuesBar Chart, Lollipop Chart
Show trendsLine Chart, Area Chart
Reveal distributionsHistogram, Violin Plot, Box Plot
Explore relationshipsScatter Plot, Bubble Chart
Explain compositionTreemap, Stacked Bar, Pie Chart (<6 slices)
Visualize flowSankey Diagram, Chord Diagram
Display hierarchySunburst, Dendrogram, Treemap
Show geographicChoropleth Map, Symbol Map

Visualization Catalog (3 Tiers)

Tier 1: Fundamental Primitives

General audiences, straightforward data stories:

  • Bar Chart, Line Chart, Scatter Plot, Pie Chart, Area Chart

Tier 2: Purpose-Driven

Specific analytical insights:

  • Comparison: Grouped Bar, Lollipop, Bullet Chart
  • Trend: Stream Graph, Slope Graph, Sparklines
  • Distribution: Violin Plot, Box Plot, Histogram
  • Composition: Treemap, Sunburst, Waterfall

Tier 3: Advanced

Complex data, sophisticated audiences:

  • Parallel Coordinates, Radar Chart, Small Multiples
  • Gantt Chart, Calendar Heatmap, Force-Directed Graph

Accessibility Requirements (WCAG 2.1 AA)

Essential Patterns

  • Text Alternatives: aria-label describing insights
  • Color Requirements: 3:1 minimum contrast, don't rely on color alone
  • Colorblind-Safe Palettes: IBM palette (Blue, Purple, Magenta, Orange, Yellow)
  • Keyboard Navigation: Tab through interactive elements, arrow keys for data points

Avoid

Red/Green combinations (8% of males have red-green colorblindness)

Performance by Data Volume

RowsStrategyImplementation
<1,000Direct renderingStandard libraries (SVG)
1K-10KSampling/aggregationDownsample to ~500 points
10K-100KCanvas renderingSwitch from SVG to Canvas
>100KServer-side aggregationBackend processing

JavaScript/TypeScript Implementation

Recharts (Business Dashboards)

Composable React components, declarative API, responsive by default.

import { LineChart, Line, XAxis, YAxis, Tooltip, ResponsiveContainer } from 'recharts';

export function SalesChart() {
return (
&lt;ResponsiveContainer width="100%" height={300}>
&lt;LineChart data={data}>
&lt;XAxis dataKey="month" />
&lt;YAxis />
&lt;Tooltip />
&lt;Line type="monotone" dataKey="sales" stroke="#8884d8" />
&lt;/LineChart>
&lt;/ResponsiveContainer>
);
}

Other Libraries

  • D3.js: Maximum flexibility, industry standard
  • Plotly: 3D visualizations, scientific/interactive charts

Decision Framework

START: What is your data?

Categorical (categories/groups)
├─ Compare values → Bar Chart
├─ Show composition → Treemap or Pie Chart (&lt;6 slices)
└─ Show flow → Sankey Diagram

Continuous (numbers)
├─ Single variable → Histogram, Violin Plot
└─ Two variables → Scatter Plot

Temporal (time series)
├─ Single metric → Line Chart
├─ Multiple metrics → Small Multiples
└─ Daily patterns → Calendar Heatmap

Hierarchical (nested)
├─ Proportions → Treemap
└─ Show depth → Sunburst, Dendrogram

References

  • Full Skill Documentation
  • Selection Guides: references/chart-catalog.md, references/selection-matrix.md
  • Technical: references/accessibility.md, references/color-systems.md, references/performance.md
  • Examples: examples/javascript/ - React, D3.js, Plotly implementations