HTML Charts

Your dashboard grid, redrawn as the chart you wanted

41 free Chart.js charts that read a normal grid on the same page. Paste a snippet into an HTML container and the rows become cards, trends, funnels and heatmaps – no API, no install, and nothing leaves the browser.

1

Add a grid

Put a grid with the chart's columns on the same page. It's the data source, so tuck it behind the chart.

2

Paste the snippet

Add an HTML container and paste the snippet, with your own column names mapped in.

3

View the page

The chart reads every row and redraws whenever filters change the grid.

Charts

Type
Metrics
Dimensions
Date column
41 of 41 charts
Monthly Bars chart on random demo data

Monthly Bars

1–4 metrics0 dimensionsneeds a date

A $ metric by month as bars, with a toggle between three metrics, 6-month average cards and a second metric as a line.

Over timeKPIs
Stacked Segments chart on random demo data

Stacked Segments

2–4 metrics1–3 dimensionsneeds a date

Metric × units by month, stacked by segment (any combination of three dimensions), with filters and a ranking.

Over timeShare & mix
Segment Breakdown chart on random demo data

Segment Breakdown

2 metrics1–2 dimensionsneeds a date

The stacked segment view for grids with the month first and two dimensions – starts on Dimension A, combine with Dimension C.

Over timeShare & mix
Cost vs Return chart on random demo data

Cost vs Return

3 metrics0 dimensionsneeds a date

Cost against return (units × value) by month: net return, ROI, cost per unit vs value per unit and a monthly table.

Over timeKPIs
Month Heatmap chart on random demo data

Month Heatmap

1–2 metrics0 dimensionsneeds a date

A heatmap of a $ metric by start month and month index – per month, cumulative or per unit – with every month's curve against the average.

Over time
KPI Scorecard chart on random demo data

KPI Scorecard

1–6 metrics0 dimensionsneeds a date

Up to six metrics as cards with the latest value, change vs the previous month, a 3-month average or last year, and a sparkline; click one for its trend.

KPIsOver time
Time Series Trio chart on random demo data

Time Series Trio

1–3 metrics0 dimensionsneeds a date

Three metrics, each on its own row: a scorecard for the latest 7/28/90 days or months against the period before, next to a chart of all the data over time.

Over timeKPIs
Funnel chart on random demo data

Funnel

1 metric0–1 dimensions

Counts through ordered stages as a funnel, with step and overall conversion, the biggest drop-off and a conversion curve per segment.

Conversion
Change Bridge chart on random demo data

Change Bridge

2 metrics1 dimension

A waterfall from one total to another, showing how much each item added or took away – e.g. last period to this period.

Comparison
Pareto chart on random demo data

Pareto

1 metric1 dimension

Items ranked largest first with a cumulative share line, showing how few items make up 80% of the total.

Ranking
Target Pacing chart on random demo data

Target Pacing

1–2 metrics0 dimensionsneeds a date

Month-to-date actual against target by day, with a month-end projection, % of target and the daily rate needed to hit it.

TargetsOver time
Quadrant Scatter chart on random demo data

Quadrant Scatter

2–3 metrics1 dimension

Each item plotted by two metrics, sized by a third, split into four quadrants at the averages – spot the high-value, low-cost winners.

RelationshipsComparison
Mix Shift chart on random demo data

Mix Shift

1 metric1 dimensionneeds a date

How the share of a total moves between segments month by month, as 100% stacked bars with gains and losses in points.

Share & mixOver time
Calendar Heatmap chart on random demo data

Calendar Heatmap

1 metric0 dimensionsneeds a date

A daily metric laid out as a calendar, one square per day, with averages by weekday and totals by month.

Over time
Year over Year chart on random demo data

Year over Year

1 metric0 dimensionsneeds a date

A metric by calendar month for this year against the two before, monthly or year to date, with the YTD change.

Over timeComparison
Leaderboard chart on random demo data

Leaderboard

1 metric1 dimensionneeds a date

A ranked table for any month with change vs the month before, rank movement, share, a 12-month total and a trend sparkline.

RankingTablesOver time
Distribution chart on random demo data

Distribution

1 metric0–1 dimensions

A histogram of one value per row (e.g. per customer or order), with median, mean, P10–P90 and how much the top 10% hold – optionally split into groups.

Distribution
Target Attainment chart on random demo data

Target Attainment

2 metrics1 dimension

Actual against target for every item as bullet bars, coloured by % of target, with the overall position and who's furthest ahead or behind.

TargetsRanking
Anomaly Watch chart on random demo data

Anomaly Watch

1 metric0 dimensionsneeds a date

A daily or monthly metric against its rolling average with a normal band, flagging the points that are unusually high or low.

Over time
Treemap chart on random demo data

Treemap

1 metric1–2 dimensions

Rectangles sized by value, grouped by one dimension and split by a second – click a group to zoom in.

Share & mix
Small Multiples chart on random demo data

Small Multiples

1 metric1 dimensionneeds a date

A small chart per segment, side by side, with the latest value and change – on the same scale or each on its own.

Over timeComparison
Variance Table chart on random demo data

Variance Table

1–3 metrics1 dimensionneeds a date

A table of up to three metrics by segment for any month against the previous month or last year, with colour-coded changes and totals.

TablesComparisonOver time
Gauges chart on random demo data

Gauges

2 metrics1 dimension

Up to 12 KPIs as dials against their targets, with red/amber/green zones and a target marker.

TargetsKPIs
Combo Chart chart on random demo data

Combo Chart

1–3 metrics0 dimensionsneeds a date

Bars for one metric with one or two more as lines on a second axis, grouped by day, week, month, quarter or year.

Over time
Flow (Sankey) chart on random demo data

Flow (Sankey)

1 metric2 dimensions

How a total flows from one dimension to another – e.g. source to outcome – as bands sized by value. Click a node to highlight its flows.

Share & mixRelationships
Box Plot chart on random demo data

Box Plot

1 metric1 dimension

The spread of a value within each group – median, middle 50%, whiskers, mean and outliers – to compare groups fairly.

DistributionComparison
Radar Compare chart on random demo data

Radar Compare

3–6 metrics1 dimension

Compare up to five segments across several metrics on one radar, each metric scored 0–100 against the best segment.

Comparison
Bump Chart chart on random demo data

Bump Chart

1 metric1 dimensionneeds a date

How each segment's rank changes month by month – who's rising, who's falling and how often the leader changes.

RankingOver time
Indexed Growth chart on random demo data

Indexed Growth

1 metric1 dimensionneeds a date

Every segment's trend indexed to 100 at a base month, so growth can be compared regardless of size.

Over timeComparison
Dumbbell chart on random demo data

Dumbbell

2 metrics1 dimension

Before and after for every item as two joined dots, coloured by whether it got better or worse.

Comparison
Correlation Matrix chart on random demo data

Correlation Matrix

2–6 metrics0–1 dimensions

How strongly up to six metrics move together across rows, as a colour-coded matrix – click a cell to see the scatter.

Relationships
Time Series Stack chart on random demo data

Time Series Stack

1–6 metrics0 dimensionsneeds a date

Up to six metrics, each on its own row with a latest-range scorecard and a chart of all the data over time.

Over timeKPIs
Time Series – 1 metric chart on random demo data

Time Series – 1 metric

1 metric0 dimensionsneeds a date

One metric with a scorecard for the latest 7/28/90 days against the period before, next to its full history.

Over timeKPIs
Time Series – 2 metrics chart on random demo data

Time Series – 2 metrics

2 metrics0 dimensionsneeds a date

Two metrics, each with a latest-range scorecard and a chart over time.

Over timeKPIs
KPI Scorecard – 3 metrics chart on random demo data

KPI Scorecard – 3 metrics

3 metrics0 dimensionsneeds a date

Three KPI cards with the latest value, change and sparkline, and a trend chart for the selected one.

KPIsOver time
Combo Chart – bar + line chart on random demo data

Combo Chart – bar + line

2 metrics0 dimensionsneeds a date

One metric as bars and one as a line on a second axis – e.g. a total and a rate.

Over time
Variance Table – 1 metric chart on random demo data

Variance Table – 1 metric

1 metric1 dimensionneeds a date

One metric by segment for any month against the previous month or last year.

TablesComparisonOver time
Funnel – no segments chart on random demo data

Funnel – no segments

1 metric0 dimensions

A single funnel from stage counts, with step and overall conversion and the biggest drop-off.

Conversion
Treemap – one level chart on random demo data

Treemap – one level

1 metric1 dimension

One tile per item, sized by value.

Share & mix
Quadrant Scatter – 2 metrics chart on random demo data

Quadrant Scatter – 2 metrics

2 metrics1 dimension

Items plotted by two metrics, split into quadrants at the averages, without bubble sizing.

RelationshipsComparison
Radar Compare – 4 metrics chart on random demo data

Radar Compare – 4 metrics

4 metrics1 dimension

Segments compared across four metrics on a radar.

Comparison

Safe by design

No data leaves the page

Charts read what the page shows the viewer and calculate in their browser. Nothing is uploaded.

Pinned & integrity-checked

Every script is versioned and loaded with an SRI hash, so altered code is refused before it runs.

Permissions still apply

Charts only see rows the viewer is allowed to see. No logins, keys or API calls.

Setting one up on MicroStrategy, a web page, Tableau, Looker or Power BI? The setup guide walks through it and builds the snippet with your column names.

Questions

How do I put a custom chart in a dashboard HTML container?

Add a grid with the chart's columns to the same dashboard page, add an HTML container that runs JavaScript, and paste the chart's snippet. The chart finds the grid, reads every row and draws itself.

Does any data leave the page?

No. The chart reads the grid that is already drawn in the viewer's browser and does every calculation there. The only network requests load the chart script and Chart.js, both checked with an SRI hash.

My grid's column names are different – can I still use a chart?

Yes. Map your headers to the chart's keys with a data-columns attribute on the placeholder, e.g. data-columns='{"v1":"Revenue"}'. The chart then shows your names.

Does it work with large grids?

Yes. If the grid only draws the rows on screen, the chart scrolls through it, waits for each batch and only draws once every row has been read.

Is it free to use?

The charts are published openly on GitHub Pages with copy-paste snippets. Chart.js is MIT-licensed.

KJ

About the author

HTML Charts is built and maintained by Kai Jones, a data analyst who builds reporting, dashboards and custom visuals with SQL, Python and BI tools.

View my CV GitHub