Skip to content

Bundled plugins ​

The plugin bundle is the same whether you render via the CLI or the HTTP server — both share a single renderer. This page is the reference both tracks point back to.

chartjs2img ships with Chart.js core plus 12 ecosystem plugins, all pre-loaded by the renderer. You don't install anything — just use the options in your config JSON. Both engines bundle the same versions: the default skia engine imports them from npm, and the browser engine loads them from CDN inside the page.

chartjs-plugin-zoom needs the browser engine

Zoom / pan is interaction-only and requires a live DOM, so it is not included in the default skia engine. Use --engine browser (CLI) or "engine": "browser" (HTTP) if you rely on it. See Rendering engines.

For each plugin's full option schema, run chartjs2img llm and grep the relevant section, or see the upstream docs linked below.

Core ​

PluginVersionUse for
chart.js4.4.9Everything — this is Chart.js itself

Supported chart.type values out of the box: bar, line, pie, doughnut, radar, polarArea, scatter, bubble.

Visual decorations ​

PluginVersionUse for
chartjs-plugin-datalabels2.2.0Display values on bars, points, slices
chartjs-plugin-annotation3.1.0Threshold lines, boxes, labels, polygons
chartjs-plugin-zoom2.2.0Initial-range / zoom configuration
chartjs-plugin-gradient0.6.1Gradient fills without manual canvas code

Note on datalabels: datalabels is hidden by default; turn it on explicitly per-chart via options.plugins.datalabels.display: true (or per-dataset) if you want values to appear.

Additional chart types ​

PluginVersionAdds chart.type
chartjs-chart-matrix2.0.1matrix — heatmaps
chartjs-chart-sankey0.12.1sankey — flow diagrams
chartjs-chart-treemap2.3.1treemap — hierarchical boxes
chartjs-chart-wordcloud4.4.3wordcloud — word clouds
chartjs-chart-geo4.3.3choropleth, bubbleMap — geographic charts
chartjs-chart-graph4.3.3graph, forceDirectedGraph, dendrogram, tree — networks
chartjs-chart-venn4.3.3venn, euler — set diagrams

Date adapter ​

PluginVersionUse for
chartjs-adapter-date-fns3.0.0Time-scale axes (scales.x.type: "time")

What's NOT bundled ​

  • Animation — options.animation is forced OFF internally. The renderer needs a stable final frame to screenshot; animations would be cropped mid-transition.
  • Custom plugins you bring yourself — the renderer runs only the plugins listed above (baked into the bundle). To add another plugin, see Developer Guide → Adding a Chart.js plugin.

Forcing / overriding at render time ​

A Chart.js plugin can usually be enabled via options.plugins.<name>. For per-dataset overrides (e.g. datalabels) you can also set per-dataset properties — see each plugin's upstream docs. chartjs2img llm includes the full option tree for every bundled plugin.

Edit this pageLast updated: