Skip to content

Releases: amcharts/amcharts5

5.20.1

Choose a tag to compare

@amcharts amcharts released this 03 Aug 13:44

[5.20.1] - 2026-08-03

Added

  • WordCloud: new svgPath setting arranges words into a shape; maskByShape clips words to the outline, and shapeTolerance sets how far they may spill past it (negative pulls them inside for padding).
  • WordCloud: new randomizeAngles setting — set to false to cycle angles in order for a reproducible layout.
  • WordCloud: new allowNesting setting — set to false to pack words as non-overlapping bounding boxes instead of nesting into each other's gaps (useful with opaque label backgrounds).

Changed

  • WordCloud now computes its layout synchronously in a single pass instead of one word per animation frame — much faster for large clouds. The per-data-item ghostLabel is removed and labels are held in an internal container, so code reading dataItem.get("ghostLabel") or walking series.children for labels needs updating.
  • WordCloud word reveal can be staggered via sequencedInterpolation/sequencedDelay.

Fixed

  • Removing a Container's mask (setting it to undefined) no longer leaves its children clipped by the removed mask. Also fixes bullet clipping getting stuck after toggling maskBullets off on radar/curve charts.
  • Timeline curve charts (SerpentineChart/SpiralChart/CurveChart): setting an axis renderer's rotateLabels back to false did not un-rotate the labels.
  • A line series bullet with no paint of its own (relying on inheriting the series color) was invisible in the legend marker.
  • ArcDiagram: bullets on links whose target comes before their source were placed on the wrong side of the nodes, mirroring the arc instead of following it.
  • ArcDiagram: hiding a node made all the remaining node circles shrink disproportionately.
  • Flow charts: setting a link's fillStyle/strokeStyle back to "solid" after using "source", "target" or "none" kept the old color instead of restoring the solid one.
  • A bullet with no fill of its own now takes the color of its own slice or node on pie, funnel, flow and hierarchy charts, instead of the series color.
  • Acceleration Bands legend now shows the same scaled factor as the settings modal (1 instead of 0.001).

5.20.0

Choose a tag to compare

@martynasma martynasma released this 22 Jul 08:27

[5.20.0] - 2026-07-22

Added

  • New StarPattern and TrianglePattern fill patterns added. More info
  • RectanglePattern now supports a rotateShapes setting. When true, rotation rotates each rectangle around its own center instead of the whole grid which makes it faster.
  • New themes: Midnight, Ember, Nord, NordDark, Pastel, PastelDark, Colorblind, ColorblindDark (Okabe-Ito, color-blindness safe), Patterns, PatternsDark, Petroleum, Savanna.
  • New dark variants of the existing themes: DatavizDark, KellyDark, MaterialDark, MoonriseDark, SpiritedDark, FrozenDark.
  • Two new parameterized themes : Monochrome (a single-hue lightness ramp with an optional accent) and Adaptive (generates a full palette from one or two base colors). More info
  • XYChart has new strokeWidths and strokeDasharrays settings — arrays cycled across line series as they are added, the same way colors cycles series colors.
  • XYCursor has a new clickTolerance setting: how far outside the plot area (in pixels) a press can start and still begin a zoom/selection (the selection still starts on the plot edge). Default: 0 (current behavior).
  • New globalpointerdown event on all elements, fired on a press anywhere on the chart surface (mirrors globalpointermove/globalpointerup).

Changed

  • The Volume Profile indicator now distributes each bar's volume across the full high/low price range it traded, instead of placing the whole bar at its closing price.
  • Label's oversizedBehavior: "truncate" now ignores maxHeight setting (because there's no way to truncate text vertically).
  • Stock chart indicators now enforce sensible min/max limits on their numeric settings, so extreme values can no longer freeze the page (e.g. a Volume Profile row count of 24000) or break an indicator. IIndicatorEditableSetting gains maxValue and step.
  • New properties on Indicator editable settings: scale, maxValue, step. More info
  • Acceleration Bands' factor now displays as the conventional 1 instead of 0.001.
  • If a bullet's Graphics has no paint settings set (fill, fillGradient, fillPattern, stroke, strokeGradient) it will inherit all those from parent series.
  • New Series settings: fillGradient/strokeGradient.
  • PathPattern now repeats the svgPath on as a grid instead of drawing once and letting rendering engine repeat it.
  • An XYSeries value field (e.g. valueYField, openValueYField) can now be changed dynamically after the series is created; re-set the series' data afterwards for the change to take effect.
  • A Container's Rectangle/RoundedRectangle background now defaults crisp to true (for sharper edges/strokes) unless crisp is set explicitly.
  • An XYSeries can now be reassigned to a different xAxis/yAxis after creation.
  • Accessibility: Focusable elements are not being sized on initial load until they are actually focused.
  • Accessibility: The <div> that holds chart's focusable elements will now have its aria-label set if ariaLabel is provided in Root settings.

Fixed

  • Logarithmic ValueAxis could show floating-point noise in its grid labels (e.g. 4,999.999999999999 instead of 5,000). Grid values are now rounded.
  • Logarithmic ValueAxis was showing 0 for grid values smaller than 0.00001 when no numberFormat was set
  • ValueAxis with syncWithAxis and autoZoom: false regressed in 5.19.0: wrong scale and a possible browser hang.
  • Acceleration Bands: the upper and lower bands were swapped to display appropriate upperColor/lowerColor.
  • Williams %R: used a period + 1 lookback and treated a missing high/low as 0; it now uses exactly period bars.
  • Momentum: skipped its first computable value; it now plots from period bars onward.
  • Relative Strength Index: returned 0 (maximum "oversold") for a perfectly flat market (0/0); it now returns a neutral 50.
  • Moving Average Cross: default fast/slow periods were inverted; the defaults are now fastPeriod: 9 / period: 21.
  • Volume Profile: no longer errors in ticks count mode when the visible price range is flat.
  • LinePattern with a non-zero angle could show a seam instead of tiling seamlessly.
  • LinePattern with a non-zero rotation could render broken/dashed lines after the tile-size optimization; the auto-shrink is now skipped when rotation is set.
  • RectanglePattern/CirclePattern with a non-zero rotation could render nothing on larger pattern tiles.
  • ChartSerializer now accounts for settings on start/end labels of a HeatLegend.
  • Width of the Label's underline could fluctuate in some cases.
  • A non-finite startAngle/endAngle on a RadarChart (e.g. NaN or Infinity) could freeze the browser.
  • Venn was not resetting its colors/patterns sets when data was cleared/re-set.
  • Classes that would not react/redraw to dynamic changes to some of their settings: CategoryAxis, DateAxis, ValueAxis, CategoryDateAxis, DurationAxis, XYSeries, ColumnSeries, StepLineSeries, RadarLineSeries, SmoothedRadarLineSeries, Treemap, VoronoiTreemap, Sunburst, Pack, ForceDirected, FunnelSlice, FunnelSeries, PyramidSeries, SerpentineChart, SpiralChart, Graphics, Rectangle, RoundedRectangle, HeatLegend, WordCloud, Flow, FlowLink, Chord, ChordDirected, ChordNonRibbon, ArcDiagram.

5.19.1

Choose a tag to compare

@martynasma martynasma released this 17 Jun 15:25

[5.19.1] - 2026-06-17

Fixed

  • ChartSerializer will no longer duplicate the GeoJSON data for user-defined items.
  • MapChart projectionName was not resolving in standalone script/CDN bundles. The bundled projections are now registered whenever am5map is loaded.

5.19.0

Choose a tag to compare

@martynasma martynasma released this 15 Jun 09:35

[5.19.0] - 2026-06-15

Added

  • JSON config parser now supports a @self reference in settings, pointing to the entity being configured. This makes it possible to reference an entity from within its own settings, e.g. "selectedDataItem": "@self.dataItems.0" on a Hierarchy series. Such settings are applied after the entity (and its data) are ready.
  • MapChart now supports a projectionName setting — a string-friendly alternative to projection (e.g. "geoOrthographic"), primarily for JSON config. The bundled projections are registered automatically when parsing JSON. In code, the am5map projection factories (e.g. am5map.geoOrthographic()) tag their output with the projection name, so charts that set projection directly still serialize back to a matching projectionName. Additional projections can be registered with am5map.registerProjection(). The bundled projections are no longer eagerly pulled in, so they can be tree-shaken when unused.

Changed

  • Dynamically-set HTML content (e.g. html/labelHTML settings, HTML tooltips, modal content, export menu labels) is now sanitized to strip potentially malicious code. Can be disabled via the sanitizeHTML: false setting on Root.
  • CSV and XLSX data exports now guard against spreadsheet formula injection ("CSV injection"): string cells starting with =, +, -, @, tab, or carriage return are prefixed with a single quote so they are imported as plain text. Can be disabled via the escapeFormulas: false export option.

Fixed

  • ValueAxis with syncWithAxis set could end up with grid lines not aligned with the source axis (depending on data range and maxPrecision), and the zoom-out button could remain visible after the chart was fully zoomed out.
  • ChartSerializer would error out on a legend with non-Entity items in its data.
  • Changing padding of Container was not causing it to be redrawn.
  • Adding a new series to a PieChart at runtime was not resizing already-rendered series until the next chart resize.
  • MapPointSeries was not rendering bullets for MultiPoint geometries due to an assignment used in place of a comparison.
  • CommodityChannelIndex indicator was computing typical price as (high + low + close) / 2 instead of / 3, producing inflated values.
  • ForceDirected was clearing a node's fixed x position instead of its fixed y when the y coordinate was unset, leaving the node pinned vertically.
  • Legend was erroring out when sorting its items if its children contained extra elements without a data item (e.g. a manually added Button).
  • DateAxis with groupData: true leaked grouped data items (and their bullets) on every regroup — most noticeable with frequent real-time data updates — because the previous grouped data sets were dropped without being disposed.
  • Misc changes to alleviate potential for XSS via user-supplied content.

5.18.0

Choose a tag to compare

@martynasma martynasma released this 04 Jun 07:19

[5.18.0] - 2026-06-04

Added

  • fitNodes (default: false) setting added to Tree chart. If set to true, hidden nodes will excluded from the layout, giving more space for visible ones.

Changed

  • pdfmake dependency updated to ^0.3.9. For those using only amCharts Exporting API, nothing changes. Only if you are accessing pdfmake object directly, there are some breaking API changes. More info.
  • Renamed type setting to maType on moving average indicators (MovingAverage, MovingAverageDeviation, MovingAverageEnvelope, BollingerBands). (setting type will work as well, but it's deprecated)
  • Renamed type setting to shapeType on VoronoiTreemap. (setting type will work as well, but it's deprecated)

Fixed

  • PictorialStackedSeries was not correctly guarding against NaN scale values, which could result in invalid scale being applied to the series mask and graphics.
  • Saving/serializing StockChart now includes fontFamily, fontWeight, and fontStyle settings for labels.

5.17.3

Choose a tag to compare

@martynasma martynasma released this 29 May 07:59

[5.17.3] - 2026-05-29

Added

  • Label setting fontFamily now accepts special value of "inherit". If set it will automatically use computer fontFamily value on chart's DOM container.
  • onDebounced(key, callback, delay) and offDebounced(key, callback?) methods added to all entities. Like on()/off() for settings, but the callback fires only once after rapid changes settle, waiting delay milliseconds since the last change.
  • onPrivateDebounced(key, callback, delay) and offDebouncedPrivate(key, callback?) — same as above for private settings.

Fixed

  • The underline text for a Label could render thicker in some cases.
  • GanttSeries was not syncing the end field back to data context when tasks were moved or resized, causing stale values when serializing data or calculating linked group positions.
  • Gantt.addNewTask() was setting a hardcoded stale end value in new task data.
  • If Root was placed in a ShadowDOM, TAB would select non-visible focusable elements.
  • Accessibility: The text for readable tooltip element had in-line formatting text in them.

5.17.2

Choose a tag to compare

@martynasma martynasma released this 16 Apr 12:51

[5.17.2] - 2026-04-16

Changed

  • Tweaked geodata for better display of antimeridian-crossing countries.

5.17.1

Choose a tag to compare

@martynasma martynasma released this 07 Apr 12:44

[5.17.1] - 2026-04-07

Changed

  • MapSankeySeries now automatically resolves sourceId/targetId endpoints once the referenced polygonSeries finishes loading its geoJSON. Users no longer need to wrap sankeySeries.data.setAll() in a polygonSeries.events.once("datavalidated", ...) callback.

5.17.0

Choose a tag to compare

@martynasma martynasma released this 06 Apr 12:41

[5.17.0] - 2026-04-06

Added

Fixed

  • Added safeguards to avoid floating point errors when animating values.

5.16.2

Choose a tag to compare

@martynasma martynasma released this 17 Mar 13:16

[5.16.2] - 2026-03-17

Added

  • syncZeros added to ValueAxis. It will work only if syncWithAxis is set and zero is within min/max of axis.
  • Exposing standalone functions via index/am5: populateString(), getTagValue(), getCustomDataValue().
  • nodeSeparation setting added to Tree. Allows custom separation function between nodes, receiving two data items and returning a numeric value.
  • setFlatData() method added to Hierarchy. Accepts flat array data with parent ID references and converts it to nested hierarchy format. Works with new parentIdField setting.
  • clustered setting added to Tree. When set to true, uses cluster layout (dendrogram) where all leaf nodes are placed at the same depth.

Fixed

  • minBulletDistance was not showing/hiding bullets if set dynamically after series was already initialized.
  • Axis syncing algorithm fixed, performance of syncing improved.
  • Tree and ForceDirected charts with very deep structures were having performance issues.