Search DevTools

Jump to any tool or page

JSON → Chart Generator

Paste your JSON array of objects, select axes and chart type, and generate charts instantly.

Data & Axes

Chart Preview

Paste JSON, parse and configure axes to see chart.

Visual Creation

About Chart Generator

Paste tabular or JSON data, pick a chart type, and configure axes, series, and styling to produce an embeddable chart or image. The hard part is rarely rendering — it is that the visual encoding you choose determines what readers conclude, and a truncated axis or a category order sorted alphabetically can imply a story the numbers do not support.

Frequently asked questions

When is it legitimate to truncate the y-axis?
For bars, effectively never: a bar encodes value by length from zero, so cutting the baseline makes a three-percent difference look like a doubling. For line charts tracking change over time it is often correct, since the reader is judging slope rather than magnitude, and forcing zero onto a series that hovers near 98 per cent flattens the signal into a straight line. The rule follows the encoding — length demands a zero baseline, position does not.
How should missing data points be rendered?
There are three distinct cases and they should look different. A genuine zero is a point at zero. A value not yet collected should break the line, leaving a visible gap. A value that exists but was not returned is the same. The failure mode is a charting library that treats null as zero, drawing a dramatic dip that readers interpret as a real collapse. Check how your data pipeline encodes absence before plotting, because the chart cannot distinguish them.
Why do my dates plot in the wrong order or wrong place?
Almost always because they are being treated as categories rather than as a time scale. A categorical axis spaces entries evenly, so gaps in irregular sampling vanish and ordering follows string sort — putting 10 January before 2 January. A time scale positions by actual instant and shows the gaps honestly. The other classic is timezone drift: a date-only string parses as UTC midnight in JavaScript, which renders as the previous day for anyone west of Greenwich.
How many series can a line chart carry before it stops working?
Roughly five to seven, limited by colour discrimination rather than pixels. Beyond that, categorical palettes run out of hues that stay distinguishable, especially for the eight percent of men with red-green colour vision deficiency, and the legend forces constant back-and-forth between key and plot. The alternatives are small multiples — one panel per series on shared axes, so comparison is by position — or highlighting one or two series in colour and rendering the rest as grey context.
Should I export as SVG or PNG?
SVG stays sharp at any zoom, keeps text selectable and searchable, and stays small for charts with modest data. It degrades badly past a few thousand marks, since each becomes a DOM node, and it can render differently elsewhere if it depends on a font the viewing system lacks — convert text to paths or embed the font for anything leaving your control. PNG is fixed-resolution but predictable; export at two or three times the display size for high-density screens.