PlotSet LogoPlotSet

How to Create a Histogram

A step by step walkthrough for turning a spreadsheet into a published histogram in PlotSet, from shaping your data to setting the bin width and exporting or embedding the finished chart.

About 8 minutes

One raw column of numbers is all it takes to learn how to create a histogram in PlotSet: upload it, and you end with a published, interactive chart you can embed or hand off as an image. You'll upload your own observations, not the sample data the template loads with, going through the same click path a real PlotSet chart takes from upload to publish.

Budget about eight minutes if your column is already clean: one header, one number per row, no blanks. Add a few more if you're pulling that column out of a wider export or a pivot table, since a histogram needs raw observations, not something you've already counted or bucketed by hand.

The data you need

One numeric column of raw, unsummarized observations: one row per measurement, a single header row, no totals and no pre-counted buckets.

Sample CSV
TicketIdResponseTimeMinutes
14
27
35
412
59
66
721
88
95
1014
113
1210
Notes

PlotSet only bins the numeric column, so an id or ticket number sitting next to it is fine. What it can't use is a column of pre-counted totals, one row per bracket instead of one row per ticket.

This has to be raw observations: one row per response, not a count of how many tickets fell into each time bracket. If your sheet already looks like that, you've built a bar chart, not a histogram.

Strip stray units and commas before uploading. A cell that reads '12 min' or '1,200' imports as text, and PlotSet will treat it as a category instead of a number.

Blank cells are excluded from the count rather than treated as zero. That's usually what you want, but a blank caused by a stray space or a typo is easy to miss, so scan the column before you upload.

The steps

The exact click path in PlotSet, from a blank template to a finished chart.

  1. 01

    Pick the Histogram template

    From the PlotSet dashboard, start a new project and choose the Histogram template. It loads with a sample column of numbers already in place, so you can see the shape PlotSet expects (one column, one row per observation) before you touch your own file.

    PlotSet's template picker: chart categories listed down the left, the Bar Charts grid open, and the Bar Chart template card showing its Select button.
    Every guide starts here. Pick the category, then the template: it is the same grid whichever chart type you are after.
  2. 02

    Shape your sheet down to one raw column

    Pull out the single numeric column you want the distribution of: response times, order values, exam scores, whatever you're measuring. Delete any row that isn't an individual observation, including a subtotal row or a bracket you've already counted by hand.

  3. 03

    Upload your file or connect a sheet

    Use the data panel to import a CSV or .xlsx file, paste the column straight from a spreadsheet, or connect a Google Sheet if you want the chart to update later without a re-upload. PlotSet reads the first row as a header automatically.

    The PlotSet editor's data view: a spreadsheet grid with Name, Value and Region columns filled with Canadian province figures, beside the Data panel offering CSV upload, Magic Import and Google Sheet sync.
    The data view, shown here on a bar chart project. Upload a CSV, lift the numbers out of an image with Magic Import, or sync a Google Sheet. The panel is identical for every chart type.
  4. 04

    Map the numeric column

    Confirm which column PlotSet is binning. This is usually automatic when the header is clear, but check it manually if your sheet still has an id or date column sitting next to the numbers, since one of those getting picked up by mistake will wreck the bins.

    The PlotSet data panel with the column bindings highlighted: Label/time mapped to column A, Values to column B and Filter/color to column C, with the Auto Binding button below.
    Bindings decide which column becomes the label, which supplies the values and which drives the colour. Auto Binding guesses them from your headers, so check it rather than assume it.
  5. 05

    Set the bin width

    This is the one setting that changes the story, so don't leave it on the automatic default without looking. Try two or three widths and watch the shape change: too wide flattens a second peak into one hump, too narrow turns ordinary noise into what looks like a feature. Land on a round number a reader can hold in their head, 5 minutes, 10 points, 1000 dollars, rather than whatever the automatic rule produces.

  6. 06

    Label the axes and add a title

    Turn on the frequency axis label so it's clear the bars are counts, not raw values, and state the bin width somewhere in the title or a caption, such as 'Response time, 5 minute bins.' That single line saves a reader from misreading the chart.

    The PlotSet editor on the Preview tab: a finished Histogram on the canvas, with the settings panel outlined in red down the right-hand side.
    The Preview tab for a Histogram. Every styling control lives in the outlined panel, each on its own tab: appearance, header, footer and the options specific to this chart type.
  7. 07

    Publish the histogram, or export it as an image

    Publish for a live, interactive chart with hover counts on each bin and a shareable link, grab the embed code for a page, or export a PNG, SVG or PDF if you need a static image for a deck.

Start from the Histogram template with sample data already loaded, then swap in your own.

Open the template

Publish, embed or export it

The last stretch is the same for every chart type: Share turns the chart into a live public link and an embed code, Export writes it out as a static file.

Share: public link and embed code

Activating the embed code and public link publishes the chart. The link is safe to send to anyone, and the embed code drops into any page as an iframe that keeps the hover tooltips and the interactivity. Edit the chart later and hit Recreate to push those changes out to both.

The PlotSet editor toolbar with the Share button highlighted, sitting next to the Export button.
Share is how a finished chart becomes a public link and an embed code.
PlotSet's Share dialog: the toggle activating the embed code and public link, buttons for Link, Embed, Facebook, Reddit, Twitter, LinkedIn and Email, and the public chart link with a Copy button.
Switch on the embed code and public link, then copy the link or take the iframe. Recreate pushes later edits out to everyone already holding it.

Export: SVG, PNG or JPG

Export writes a static copy at whatever size you need. SVG stays sharp at any scale and can still be edited in a design tool; PNG and JPG are the safe choices for slides and documents. The scale multiplier is what gets you a crisp image on a retina screen.

The PlotSet editor toolbar with the Export button highlighted.
Export is the route to a static file for a slide or a report.
PlotSet's Export chart dialog: a 2x scale selector, width and height fields set to 1000 by 600, and the open format menu listing SVG, PNG and JPG.
SVG stays sharp at any size and stays editable in a design tool; PNG and JPG are the safe picks for a deck. Set the scale before you export so the image is crisp on a retina screen.

Styling tips for a Histogram

Favor round bin widths over the automatic default

PlotSet will suggest a bin width based on your data, and it's a reasonable starting point, not a final answer. A width of 5, 10 or 25 is far easier for a reader to interpret than 7.3, even when the automatic number technically fits the data better.

Start the frequency axis at zero

Bar height is the encoding here just as it is on a bar chart, so a truncated frequency axis exaggerates every gap between bins. If two bins look close in height, add count labels rather than zooming the axis in.

Keep the bin count somewhere between ten and thirty

Fewer than ten bins and you lose the shape; more than thirty and every bar gets thin enough that the eye can't compare neighbours. If your data needs finer resolution than that to tell its story, a KDE curve, or a second chart split by group, usually serves better.

Reach for the KDE overlay when the bars look noisy

If the bar heights wobble no matter which width you try, add the smooth density curve instead of fighting the bins. It shows the underlying trend without depending on where an edge happens to fall, and it's one setting away from the plain histogram template.

Common mistakes when making a Histogram

The bars have gaps between them, like a bar chart

This almost always means PlotSet is reading your numeric column as text: a stray unit ('12 min'), a thousands comma ('1,200'), or a leading character from a spreadsheet export. Clean the column down to plain numbers and remap it, and the bars should close up into a continuous scale.

One bar sits far out on its own, off to the right

Check that row for a data entry mistake before treating it as a real outlier: an extra zero, a unit typo, or a value copied from the wrong column. If it turns out to be genuine, keep it and either widen the bin width or annotate the tail, rather than deleting it to tidy the chart.

The bar count doesn't match how many rows you uploaded

That usually means the sheet was already summarized, one row per bracket with a count column, rather than one row per observation. Go back to the raw data: a histogram needs to do its own counting, so feeding it pre-counted brackets produces a chart of your bins, not the data's actual distribution.

Learn more about the Histogram

Not sure the Histogram is the right choice? See what it is, when to use it and when not to.

About the Histogram

Histogram: common questions

One column of raw numbers, one row per observation, with a single header row. PlotSet does its own counting into bins, so don't pre-summarize the data into brackets first. An id or date column next to the numbers is fine; PlotSet just ignores it when it bins the numeric column.

Make your Histogram now

Free to start with 300+ templates. No credit card required.