An honest comparison of an embeddable, code-driven visualization engine and a hosted, point-and-click tool for publishing charts, maps and tables — including where Datawrapper is the better choice.
Datawrapper is a hosted web application for making and publishing charts, maps and tables without code; CanvasXpress is a visualization engine you build into your own pages, notebooks and applications. Datawrapper is widely used by newsrooms: you paste or upload data, pick a chart, annotate it, and publish a responsive embed hosted by Datawrapper, with editorial styling by default. CanvasXpress is a source-available JavaScript engine with R, Python, Julia and React interfaces, 60+ chart types including first-class scientific ones, analytics inside the chart, and a reproducible JSON specification behind every figure. It now covers the editorial publishing features too — number formats, a structured source footer, callouts and direct labels, an editorial theme with mobile rules, arrow and range plots, election donuts, classed choropleths, tables with in-cell bars and sparklines, alt text, and vector PDF — and its self-hosted dashboards add a data-first wizard and publish-and-embed. Choose Datawrapper for the fastest no-code route from a spreadsheet to a published newsroom chart. Choose CanvasXpress when the chart has to live inside your own product or pipeline, be reproducible from code, stay on your own servers, or show scientific data.
Before comparing, here is what already exists in CanvasXpress for the publishing work Datawrapper is known for, with the option that turns it on. Everything below is off by default, so existing charts do not change.
| Publishing need | In CanvasXpress | How |
|---|---|---|
| Readable numbers (1.2M, 45%, $1,234, locale separators) | Yes | numberFormat, per axis, label and tooltip |
| Source line, notes, byline, “Get the data” | Yes | notes, source + sourceUrl, byline, showDataDownload — see Chart Footer |
| Annotations with arrows; direct line labels instead of a legend | Yes | decorations.marker callouts (straight or curved, drag to place); showLineEndLabels |
| Editorial look and mobile layouts | Yes | theme: "editorial"; responsiveRules move or hide the legend and resize text by width |
| Arrow plots, range plots, dot plots, split bars, slope charts, small multiples | Yes | graphType: "Dumbbell" (dumbbellArrowDirection), Dotplot, Bar, Line, segregateVariablesBy |
| Election donut and parliament chart | Yes | pieShape: "half"; pieType: "parliament" |
| Choropleths with classes (natural breaks, quantiles); symbol and region-label maps | Yes | graphType: "Map" + colorSpectrumBreaksMethod (jenks, quantile, equalWidth), stepped legend, showMapLabels, bubbles with sizeBy; tile maps via Leaflet |
| Tables with bars, sparklines and heat colours | Yes | view: "table" + dataTableColRenderer, dataTableColored, per-column number formats |
| Alt text for screen readers | Yes | a11yDescription (otherwise a generated summary); WCAG 2.1 AA report on the Accessibility page |
| PNG, SVG and PDF downloads | Yes | File menu; the PDF is vector and tagged, and every export carries the chart’s data so it can be reloaded — see Export to PDF |
| Paste data, get suggested charts, publish an embed | Yes, in the self-hosted dashboards | Data-first wizard; share links; auto-resizing iframe, <cxd-embed> web component and PNG fallback; organisation brand lock |
| Dimension | CanvasXpress | Datawrapper |
|---|---|---|
| Category | Embeddable visualization engine (library) plus a self-hostable dashboard platform | Hosted web application for publishing charts, maps and tables |
| Primary user | Developers, data scientists, bioinformaticians; no-code Customizer and dashboard wizard for non-programmers | Journalists, editors and communications teams |
| Authoring | JSON specification from code (JavaScript, R, Python, Julia, React) or the in-chart Customizer | Step-by-step browser workflow: data, check, visualize, publish |
| Hosting and data location | Runs in your page with no server; dashboards self-hosted on your infrastructure. Data never has to leave it | Charts and their data are stored and served by Datawrapper |
| Publishing | Embed the engine anywhere; or publish from the dashboards server (stable URL, iframe, web component, PNG fallback) | One-click publish to a responsive embed served from Datawrapper’s CDN |
| Chart range | 60+ types, including heatmaps, Oncoprint, genome browsers, networks, dendrograms, volcano and survival plots | Focused set for editorial use: lines, bars and columns, arrow, range and dot plots, scatter, area, pie and donut, election donut, tables and maps |
| Analysis in the chart | Clustering, regression and LOESS fits, statistics, transforms, filtering, forecasting | Presentation-focused; analysis happens before the data is uploaded |
| Reproducibility | Every chart is a portable JSON spec with a replayable action history; the data travels inside exported PNG, SVG and PDF files | Charts live in the Datawrapper account; duplication and an API are available |
| License and cost | Source-available; free to use, including commercially, while the attribution mark stays visible; a commercial license removes it. Dashboards package MIT | Commercial service with a free tier; paid plans add features such as custom themes, team management and additional exports |
| Best fit | Charts inside your own product or pipeline, reproducible or regulated work, scientific data, self-hosting | Fast, polished charts for news articles and reports, made by non-programmers |
Datawrapper’s strength is its workflow: a guided sequence from pasted data to a published chart, with sensible editorial defaults at every step, so a reporter on deadline needs no design or coding decisions. CanvasXpress starts from the other end: one JSON specification describes the chart, and the same specification renders from JavaScript, R, Python or Julia, in a notebook, a Shiny or Dash app, or a static page. Its in-chart Customizer and the dashboards wizard give non-programmers a point-and-click route, but the engine’s centre of gravity is code, which is what makes it scriptable, testable and repeatable.
The details that make a newsroom chart readable now exist in CanvasXpress, each behind one option: compact, currency and percent number formats with locale separators; a footer with notes, a linked source, a byline and a “Get the data” CSV link that every PNG, SVG and PDF export keeps; annotation callouts with curved arrows; series names at the end of each line instead of a legend; an editorial theme; and responsive rules that move the legend and shrink text on a phone. Datawrapper applies most of these by default, which is the difference that matters day to day: in Datawrapper the polished result is the starting point, while in CanvasXpress you opt in with theme: "editorial" and a few options.
Both make choropleths, symbol maps and labelled region maps. CanvasXpress classifies values with natural breaks (Jenks), quantiles or equal widths and draws a stepped legend whose classes match the fills exactly; it ships continent, country, US state and zip-code geographies, accepts any TopoJSON, and adds tile maps through Leaflet. Datawrapper’s map product is broader for newsroom work: a large library of ready-made basemaps for regions around the world, and locator maps designed for showing where a story happened.
A CanvasXpress table view is searchable, sortable and paginated; columns can show in-cell bars (with a zero baseline for negative values), heat colours, sparklines drawn from other columns of the row, and per-column number formats. Datawrapper tables are a mature, dedicated product with mobile layouts and a wide set of cell styles; for a table that is the whole story, they are more polished.
Datawrapper publishes to its own CDN and gives you an embed code; the chart stays in your Datawrapper account. CanvasXpress needs no publishing step when the chart lives in your own page: the engine renders it client-side. When you do want a stable link, the self-hosted canvasxpress-dashboards server publishes a dashboard or a single chart and generates an auto-resizing iframe, a <cxd-embed> web component and a PNG fallback for RSS and email, all on your own infrastructure, with an organisation brand lock applied to every shared view.
CanvasXpress downloads PNG (at higher resolution if you ask), SVG and vector PDF. The PDF is written by the engine itself: lines stay sharp, text is selectable, and the file is tagged so screen readers announce the chart’s alt text. Every export carries the chart’s data and configuration inside it, so dropping the file back onto a chart restores the interactive version. That, and the replayable history of every change, is what CanvasXpress is built around; Datawrapper keeps the editable chart in its own application.
This is where the two tools part ways completely. CanvasXpress was built for biomedical research: clustered heatmaps with dendrograms, Oncoprint, genome tracks, networks, volcano and survival plots, and statistics computed inside the chart. Datawrapper deliberately focuses on the chart types a general readership understands.
Choose Datawrapper when non-programmers need to publish clean charts, maps and tables for articles and reports quickly, and hosting the charts and their data with a third party is acceptable.
Choose CanvasXpress when charts must live inside your own product, notebook or R/Python pipeline; when they must be reproducible from code or carry their data with them; when data cannot leave your infrastructure; or when the content is scientific. Add canvasxpress-dashboards when you also want no-code authoring and publish-and-embed on your own servers.
Yes. Arrow plots, range plots, split bars, election donuts, classed choropleths, tables with bars and sparklines, callouts, direct line labels, a source footer and readable number formats are all built in. Set theme: "editorial" for the publication look.
No. The engine renders in the browser, so a chart in your own page needs nothing else. The optional, self-hosted dashboards server adds share links and embed codes.
Yes: vector PDF and SVG, or PNG at higher resolution, from the File menu or savePDF() / saveSVG(). The PDF is tagged with the chart’s alt text and carries the chart’s data.
It is source-available and free to use, including commercially, as long as the attribution mark stays visible; a commercial license removes it — see the license. The dashboards package is MIT.
When reporters and editors need to publish polished charts, maps and tables quickly without code, and managed hosting by a third party suits them.
Every example on this site runs live in the browser. Start with the editorial charts page, the chart footer, the examples gallery or the quick start, or see the full comparison hub.