Data Visualization

Chart Generator

Create bar, line, pie, radar and more charts. Import CSV, customize colors, legend and axis labels — download as PNG, JPEG, SVG or PDF.

Advertisement
Type
Data
Style
Chart Type
Scatter format: Enter one x,y pair per line in each dataset's values field.
Example: 2.5, 4.8
Import JSON Data
Accepted formats: Chart.js native {"labels":[…],"datasets":[{"label":"…","data":[…]}]} Array of objects [{"month":"Jan","sales":10},…] Key-value object {"Jan":10,"Feb":20} Array of numbers [10,20,30,40]
Import CSV Data
or paste below
Month,Revenue,Expenses Jan,65,40 Feb,59,48 Mar,80,52
Title Size
Color Palette
Aspect Ratio
Legend
Show Legend
Position
Legend Size
Options
Show Grid Lines
Smooth Lines
Stacked
Preview
Download Chart
Advertisement

About This Tool

Chart Generator is a fully client-side data visualisation tool — nothing is uploaded to a server, and no account is required. It supports 9 chart types: Bar, Horizontal Bar, Line, Area (filled line), Pie, Doughnut, Radar, Polar Area, and Scatter. You can create single-dataset charts for simple comparisons or multi-dataset charts for side-by-side series.

Data can be entered manually, imported from a CSV file (paste or upload), or pasted as JSON — including Chart.js native format, plain arrays, key-value objects, and arrays of objects with automatic column detection. Charts update live as you change any setting. When you're ready, download your chart as PNG, JPEG, SVG, or PDF with a single click.

How to Use

  1. Pick a chart type in the Type tab. Click "Load Sample Data" to instantly see matching example data for that chart type.
  2. Add your data in the Data tab — three options:
    • Manual entry: type comma-separated labels and values directly into the text fields.
    • Import CSV: paste CSV text or upload a .csv file. First column = labels, remaining columns = datasets.
    • Import JSON: paste JSON in any of the supported formats (Chart.js native, [{label,value}], {"key":number}, or a plain number array). The tool detects the format automatically.
  3. Style your chart in the Style tab — set title, choose a colour palette, configure legend position and size, set X/Y axis labels, toggle grid lines, smooth lines, and stacking.
  4. Download using the PNG, JPEG, SVG, or PDF buttons on the right panel. All formats include the dark background.

For scatter plots, enter one x, y pair per line in the dataset values field, or import JSON with [{"x":1,"y":2},…] format.

Logic & Algorithm

Rendering is handled by Chart.js 4. The Alpine.js component stores all configuration in reactive state and computes a single chartConfigKey string by JSON-serialising every field. A single $watch on this key fires a 180 ms debounced rebuild — so the chart only re-draws after the user stops typing, preventing unnecessary redraws mid-keystroke.

JSON import follows a detection cascade: (1) Chart.js native { labels, datasets } shape, (2) plain key-value object, (3) flat number array, (4) array of { x, y } scatter points, (5) array of mixed objects — numeric columns become datasets, the first string-valued column (or a known label key like month, name, category) becomes the labels. This handles most real-world API responses without any schema declaration.

Chart type mapping: Horizontal Bar maps to Chart.js bar with indexAxis: 'y'; Area maps to line with fill: true per dataset. Pie/doughnut charts apply one colour per label across all datasets. PDFs are produced with jsPDF by drawing the rasterised canvas onto an auto-rotated A4 page.

Tags: #Design #DataViz #Charts #BarChart #LineChart #PieChart #RadarChart #CSVImport #Free #NoSignup

Frequently Asked Questions

What chart types are available?
9 types: Bar (vertical), Horizontal Bar, Line, Area (filled line), Pie, Doughnut (ring), Radar (spider/web), Polar Area, and Scatter. All support multiple datasets. Switch between types at any time — your data is preserved.
How do I import data from a CSV file?
Open the Data tab and click "Import CSV". Paste your CSV text — the first column becomes chart labels, each remaining column becomes a separate dataset. The parser handles quoted fields and standard comma-separated format. You can also type or paste data directly into the labels and values fields.
How do I fix a "value count doesn't match label count" warning?
Each dataset needs the same number of values as there are labels. For example if you have 6 labels (Jan–Jun) each dataset should have exactly 6 comma-separated numbers. Click "Load Sample Data" for the current chart type to see the expected format.
How do I enter scatter plot data?
Select Scatter in the Type tab, then enter one x,y pair per line in the dataset values field. Example: 2.5, 4.8 on the first line, 3.2, 6.1 on the next. You can also use semicolons to separate pairs on one line.
What download formats are supported?
PNG (lossless, great for slides and web), JPEG (smaller file size), SVG (vector format, scales to any resolution), and PDF (auto-selected A4 landscape or portrait to best fit your aspect ratio). All formats include the dark background.
Can I add axis labels and adjust the legend size?
Yes. In the Style tab: enter X-Axis and Y-Axis labels for cartesian charts (bar, line, area, scatter); set legend position (top, bottom, left, right); drag the Legend Size slider to adjust font size from 9px to 20px; adjust title font size from 11px to 28px.