Skip to content

Pawprint charts ​

Charts for pet apps. They draw in on load, stay readable in dark mode, label every unit and use shape or text next to color. Data is fictitious.

Pet charts ​

Weight over time

Kiara, kg per month46810Apr: 5.2 kgMay: 6.8 kgJun: 8.1 kgJul: 9.0 kgAug: 9.6 kgSep: 10.1 kgAprMayJunJulAugSep

Weekly activity

Active minutes per day. Yellow marks days at 70 or more.0255075100Mon: 42 active minutesMonTue: 55 active minutesTueWed: 38 active minutesWedThu: 64 active minutesThuFri: 71 active minutesFriSat: 90 active minutesSatSun: 77 active minutesSun

Monthly pet spending

Share of CLP 186,000Food: 46Vet: 28Insurance: 14Toys: 12CLP 186kThis month
Food 46Vet 28Insurance 14Toys 12

Vaccine coverage

8 scheduled vaccinesDone: 5Due soon: 2Overdue: 15 of 8Vaccines done
Done 5Due soon 2Overdue 1

Rules: one unit per axis, a title that says what and for whom, and tooltips (the hover title) for exact values. Yellow highlights the thing to look at, blue is the neutral series.

All charts ​

Comparison ​

Parts of a whole ​

Distribution and relationships ​

Activity and time grids ​

KPIs and progress ​

Flows and funnels ​

Chart patterns in the Pawprint palette: lines, areas, bars, rings, heatmaps, Gantt, cohorts, box plot, dual axis and more, each with loading, empty and ready states.

Live charts · synthetic data

Hover or focus a mark to read its value. Use the readout buttons for a keyboard and touch readout. Motion follows your reduced-motion setting. These are Vue/SVG demos, not the reference's React package.

Activity heatmap · Emerald

Calendar-style grid of daily activity. Darker cells mean more events; use it for habits and streaks.

Cell 1: 12 events

Activity heatmap · Sky

The same activity grid in a cool tone, for a second metric on the same page.

Cell 1: 9 events

Activity heatmap · Violet

The activity grid in a violet tone, for secondary or comparison data.

Cell 1: 15 events

Spline line · single / dual

Smooth trend over time. Switch to dual to compare two series on one scale.

0255075100JanFebMarAprMayJun
Jan: 35 units · secondary 20

Pill bars · column / row

Rounded bars that grow from zero. Flip between columns and rows for long labels.

0255075100JanFebMarAprMayJun
Jan: 35 units · secondary 20

Gradient spline area

Trend with a soft gradient fill under the line, good for volume over time.

0255075100JanFebMarAprMayJun
Jan: 35 units · secondary 20

Rounded donut

Share of a whole with a total in the middle. Keep it to five slices or fewer.

40%Core
Core: 40%

Pill bars + spline

Bars for totals with a line for the trend, sharing one axis.

0255075100JanFebMarAprMayJun
Jan: 35 units · secondary 20

Scatter matrix

Dots on two axes to spot clusters and outliers between two measures.

secondary units (x) · primary units (y)
Node 1: x 20, y 35

Financial candlesticks

Open, high, low and close for each period, as used in price charts.

0255075100JanFebMarAprMayJunprice offset +100
Jan: open 135, high 150, low 120, close 144

KPI with sparkline

One headline number with its change and a small trend line behind it.

$48,920+14.2% · monthly revenue
Jan: 35 units · secondary 20

Tier pyramid

Stacked tiers from base to top, for plans, levels or rankings.

Tier 4Tier 3Tier 2Tier 1
Tier 4: 24 units

Grouped radial arcs

Grouped arcs on a circle so you can compare a few goals at a glance.

Ring 1: 35%

Speedometer

Dial with a needle that sweeps to the current value against a range.

84%performance index
84% of a 100% scale

Bullet targets

A value against its target, with bands for poor, fair and good.

Throughput · 82 / 75%Latency · 65 / 80%Uptime · 95 / 90%
Throughput: 82%, target 75%

Sankey flow

Flow between stages. Band width shows how much moves from one step to the next.

A · 60B · 40X · 50Y · 50
Source A: 60 units

Step progression

Value that holds and then jumps, such as plan tiers or inventory levels.

0255075100JanFebMarAprMayJun
Jan: 35 units · secondary 20

Stacked tones

Bars split into parts so you can see the total and what it is made of.

0255075100JanFebMarAprMayJun
Jan: base 20, top 15, total 35

Radar web

Several scores on one web, to compare the shape of two profiles.

JanFebMarAprMayJun
Jan: 35 units · secondary 20

Concentric progress rings

Concentric progress rings, one per goal, that fill to their percent.

Ring 1: 35%

Stage funnel

Stages that narrow as people drop off, with the share kept at each step.

100%75%50%24%
Stage 1: 100%

Dot-matrix heatmap

Grid of dots whose fill shows intensity, a lighter alternative to a heatmap.

Cell 1: 0 events

Telemetry sparklines

Rows of tiny live-style sparklines for many signals at once.

CPU Temp · 42°CGPU Temp · 58°CFan Speed · 1200 RPM
CPU Temp: 42°C

Bubble clusters

Bubbles sized by a third value, to compare three measures in one view.

secondary units (x) · primary units (y)
Node 1: x 20, y 35, size 10

Tile treemap

Nested tiles sized by value, for parts of a budget or catalog.

Storage45%Compute30%Network15%Cache10%
Storage: 45%

Stream wave

Flowing layered wave that shows how categories change over time.

0255075100JanFebMarAprMayJun
Jan: lower 23, middle 41, upper 48

Arc meter

Half-circle meter that fills to a single value.

84%load index
84% of a 100% scale

Waterfall steps

Start, inflow, outflow and net, so you can see how a total was reached.

StartInflowOutflowNet
Opening 60

Polar radial pillars

Pillars radiating from a center, one per category.

Ring 1: 35%

Min/max range band

Band between a minimum and a maximum, with both edges drawn.

0255075100JanFebMarAprMayJun
Jan: min 20, max 50

Histogram · attendance distribution

Counts per bucket to show how values are distributed.

01020300–910–1920–2930–3940–4950–59Classes

Classes grouped into equal 10-attendee bins. Bar height = class count.

0–9 attendees: 3 classes

Gantt · studio timeline

Tasks as bars on a timeline, with start, length and overlap.

6h10h14h18h22hCoach ACoach BCoach CCoach D

Coach shifts on a 06:00–22:00 timeline. Bar length = duration.

Coach A: 6:00–10:00

Day × hour · studio occupancy

Day by hour grid showing when things are busiest.

6h9h12h15h18h21hMonTueWedThuFriSatSunLight 0% → dark 100%

Rows = day, columns = hour. Darker cells = higher occupancy (0–100%).

Mon 6:00: 23% occupied

Cohort · member retention

Retention by signup group, read left to right as time passes.

M0M1M2M3JanFebMarApr100%85%70%55%100%81%66%100%77%100%M0 = signup month · future = blank

Signup month × months since signup. Blank future months are not zero.

Jan, month 0: 100% retained

Box plot · revenue spread

Median, quartiles and spread for each group.

$0$50$100RidePowerEnduranceSprint

Whiskers = min/max; box = Q1–Q3; line = median. Revenue in dollars.

Ride revenue: min $20, Q1 $40, median $55, Q3 $70, max $90

Dual-axis · revenue / occupancy

Two measures with their own axes, one as bars and one as a line.

$00%$250025%$500050%$750075%$10000100%RevenueOccupiedJanFebMarAprMayJun

Bars use the left dollar axis; dashed line uses the right occupancy axis (%).

Jan: revenue $3500, occupancy 62%

Dumbbell · plan / actual

Plan against actual for each item, joined by a line to show the gap.

02550RidePowerEnduranceSprint

Outlined dot = planned; filled dot = actual attendees.

Ride: plan 25, actual 21 attendees

Sunburst · expense hierarchy

Rings for each level of a hierarchy, such as expense categories.

100%

Inner ring = category; outer ring = subcategory. Angle = share of total.

Operations: 60% of total expenses

Series filter + bars + trend ​

Bars per month with a segmented filter ("All" sums the series). The trend is a least-squares line over complete months only, so the current month is left out, and it needs 3 or more months with data. A missing month shows a dash and no bar. Fictitious data. Motion replays when the filter changes and stops with reduced motion.

$0$96$192Mar158Apr152May164Jun190Jul192Aug188Sep136

Rises about $8 per month (complete months only). Sep is the current month and is left out.

Mar$158
Apr$152
May$164
Jun$190
Jul$192
Aug$188
Sep (current)$136

Conversion funnel (Sankey) ​

Multi-stage conversion flow with drop-offs, date ranges, play/pause and keyboard focus. It inherits this template's colors and works with synthetic data. Replace the stage counts with your own source of truth.

Conversion funnel 20,400 trials

Where new trials convert or drop off. Sample data, local interactions only.

Signed up20,400100%
Activated13,26065.0%
Team invited7,82338.3%
Converted14.4%2,934 upgraded
ChannelsSigned upActivatedTeam invitedConvertedDocs8,364Referrals5,916Newsletter3,876Marketplace2,244Signed up20,400Activated13,260Skipped setup7,140Invited7,823Went solo5,437Upgraded2,934Stayed on free4,889
Signed up20,400 trials · 100.0% of sign-ups

UpgradedDropped offParticle density follows trial volume. Fictitious data, no analytics service connected.