Waffle Chart Maker (Free Image Generator)

Waffle Chart Maker (Free Image Generator)

Give a waffle chart maker one percentage, or a few category values, and it fills a grid you download as a PNG or SVG. These are part-to-whole stat cards for reports, emails, and social posts. Think "68% funded" or a three-way split, drawn as a grid of unit cells.

What a waffle chart showsWhat a waffle chart shows

A waffle chart is a grid of cells, ten by ten by default, so a hundred cells stand in for a hundred percent. You fill a share of them and the eye reads the proportion at a glance. It's the same idea as a pictogram, where repeated units count out a quantity.

Two ways to feed it:

  • Single share: one percent from 0 to 100. Sixty-eight fills 68 cells. Great for a goal, a completion bar, a "we're this far" card.
  • Category split: a few numbers plus labels. Each category takes a whole number of cells by its share, and a legend names them.

Why not a pie? At small sizes, slices blur together and angles are hard to judge. A grid of counted squares stays legible in a tweet or a slide thumbnail. That's the whole appeal. It packs a proportion into a shape people read fast.

Switch the cell shape to a circle and you get an icon array, the dot-grid "3 in 5" look that's common in health and awareness graphics.

Make one freeMake one free

Open the waffle chart maker. Enter a single percent or your category values, pick the fill colors and the empty-cell color, and download. No signup, no watermark. Export a PNG for emails and docs, or an SVG when you want it crisp at any size.

The tool doesn't mind what the number means. Give it one and you get a waffle. Print the percent in the middle for a single value, or flip on the legend for a category split.

Embed it anywhereEmbed it anywhere

A chart image embeds like any other image. One line of HTML and it renders inline:

<img
  src="https://your-render-url"
  alt="68% goal completion waffle chart"
  width="400"
/>

Here's where it clicks. Use a render URL in place of a saved file and the grid redraws each time it's fetched. Push a fresh number and the same URL returns an updated chart. The newsletter stays untouched, and nothing gets re-exported. A live goal card in a newsletter shows the latest number without a rebuild.

Save a static file when you want a fixed snapshot. Use a render URL when the picture should follow new data.

Generate at scaleGenerate at scale

One waffle by hand is quick. Fifty, or one each morning, is where the API pulls its weight.

Set up as an API component, waffle turns a chart into a component you configure and render on demand. One call takes your percent or category values and returns the image. A few ways people wire it up:

  • On a schedule: a cron job reads today's progress, hits the render URL, and drops the card into a digest.
  • Per request: your app renders a waffle on the fly for whatever number a user asks for.
  • Through an AI agent over MCP: the agent gathers the value and calls the render itself, nothing for you to wire up.

The API docs carry examples you can lift as-is, so you're not reverse-engineering the request. Shape the chart once, then feed it a value.

Start making waffle chartsStart making waffle charts

A percent goes in, a waffle comes out.

The free plan covers 100 renders a month, enough to test a live goal card and watch it update before deciding.

Frequently Asked Questions

Open a waffle chart maker, enter one percentage (like 68) or a few category values, pick your colors, and download the grid as a PNG or SVG. The tool fills a share of the cells to match your number. No design app needed, just the value you already have.

Either a single percent from 0 to 100 for a completion or share, or an array of category numbers plus labels for a split. Each category fills a whole number of cells by its share. That's the whole model.

Yes. Set the cell shape to circle and you get a dot-grid icon array, the '3 in 5 people' look. Keep it square for the classic waffle. Same data, different cell shape.

Yes. Waffle is an API component, so one render call turns a percent or category values into a chart image. Push a fresh number and the same render URL returns an updated chart, handy for a live goal card in an email or Slack.