Apache ECharts

Apache-2.0 general-purpose charting with a candlestick series and nothing else financial.

by Apache Software Foundation

Last updated

From
Free
Licence
Apache-2.0
Self-hosted
Yes
Platforms
Library

What it is

Apache ECharts is a general-purpose JavaScript charting library with about two dozen series types, of which exactly one — candlestick — is financial. Canvas by default, SVG on request, the switch being one import. Version 6.1.0 went to npm on 19 May 2026.

Feeding it OHLC is the first trap: a candlestick row is [open, close, lowest, highest], not the open-high-low-close order almost every feed returns. With a dataset you remap through encode: { y: [1, 4, 3, 2] }, as the official examples do.

Everything a trader expects around the candles is assembly rather than configuration. A volume pane is a second grid with its own axis pair at gridIndex: 1 and a bar series pointed at xAxisIndex: 1; a crosshair spanning both panes is axisPointer.link; zooming them together means listing xAxisIndex: [0, 1] on each dataZoom. The project's own Large Scale Candlestick example spends 133 lines of option object on exactly that, before a single indicator exists. dataZoom itself is good — an inside variant for wheel, drag and pinch, a slider for the overview bar, both windowing the axis rather than re-filtering your array.

Pricing

Nothing is for sale, structurally rather than for now: ECharts is an Apache Software Foundation top-level project with its own PMC, in the foundation's registry since January 2021. No pro build, no hosted variant, no support contract; support is GitHub issues and the mailing lists. The licence costs one thing that is not money — Apache-2.0 clause 4(d) obliges you to carry the project's NOTICE attribution into anything you ship.

Data & coverage

None whatsoever. ECharts makes no network request of its own and knows nothing about symbols, sessions or exchanges — it renders arrays you hand it, as readily for rainfall as for a futures curve.

Integrations

echarts on npm, with zrender and tslib as its only runtime dependencies, plus CDN bundles for a plain script tag. Server-side rendering is first-party and genuinely dependency-free: since 5.3.0, init(null, null, { renderer: 'svg', ssr: true, width, height }) and renderToSVGString() return markup with no headless browser involved, and since 5.5.0 a small client runtime rehydrates that SVG without shipping the full library.

No framework wrapper is official. Vue-ECharts (8.3.0, 6 September 2026), echarts-for-react (3.0.6, 21 January 2026) and ngx-echarts (22.0.0, 11 June 2026) are MIT community projects on active but volunteer cadences, outside the ASF and its security process.

Limitations

  • No indicators and no drawing tools. Zero of each, in a library whose pitch is breadth. graphic and markLine place static shapes; a draggable trendline and a Fibonacci retracement are a project of your own.
  • No symbol search, watchlist, datafeed adapter or order entry, and no price-scale conventions either — no log or percentage toggle, no last-price label on the right axis, no session handling. Weekend gaps are dodged with a category axis of trading dates.
  • Tree-shaking buys less than you hope. The floor is the zrender core, so candlestick-only is still 157 KB gzipped against 374 KB for the whole library — roughly three times what a purpose-built financial library costs.
  • large: true is on by default above 600 candles, and the docs are explicit that in that mode the style of a single data item can no longer be customised.
  • No incremental append for candlesticks. appendData exists, but the API reference limits incremental rendering to scatter and lines; live ticks mean setOption with the series again.
  • Defaults follow the Chinese convention — up is red (#eb5454), down green (#47b262). Ship that unchanged to a Western audience and every reader misreads the chart.
  • Accessibility is opt-in: aria.enabled defaults to false, and what it generates is a summary, not a navigable series.
  • Part of the issue tracker is in Chinese — 7 of the 37 most recent open issues sampled on 13 September 2026. Docs are fully bilingual, so this bites in bug threads, not in the handbook.

Alternatives

Lightweight Charts is the obvious comparison: far smaller, financial from the first line, equally devoid of indicators. KLineChart ships indicators out of the box. Highcharts Stock is commercially licensed and arrives with indicators, annotations and a range selector already built. uPlot is smaller, faster and barer still.

Pick ECharts when the trading chart is one panel in an application that already holds twenty other charts, and one library for all of them outweighs the financial scaffolding you will write by hand.

Specs

Interfaces
JavaScript/TypeScript
Export
None
Asset classes
Markets
Platforms
Library
AI features
None
Capabilities
Charting
Pricing verified
Capabilities verified
Coverage verified

Also from Apache Software Foundation

Also worth comparing

  • KLineChartApache-2.0 canvas candlesticks with 27 indicators built in and zero dependencies.
  • Lightweight ChartsThe chart and nothing else — six series types on canvas, attribution required.
  • Plotly.jsCandlestick and OHLC traces in an MIT library the notebook already has installed.
  • amCharts 5 Stock ChartLinkware — free in commercial products as long as the amCharts link stays on the chart.
  • AnyStockPer-product, per-domain commercial licensing with a watermark until you pay.
  • Highcharts StockCommercial JS financial charting — 48 indicators, a navigator, a per-seat licence.

FAQ

Is Apache ECharts free to use in a commercial product?

Yes. The LICENSE file in the repository is Apache-2.0 verbatim, with a subcomponents section putting four files that embed d3 code under BSD 3-Clause. The one obligation that follows you into a shipped product is the NOTICE file — Apache-2.0 clause 4(d) requires you to reproduce its attribution text in your own distribution. There is no commercial edition, no hosted service and no paid support to buy instead.

Does Apache ECharts have built-in technical indicators?

None. Searching the 6.1.0 package for MACD, RSI, Bollinger or Ichimoku returns nothing, and the shipped chart types include no indicator series. A moving average is a second line series over numbers you computed yourself, and a trendline layer is yours to build.

How big is a candlestick-only ECharts build?

Measured against 6.1.0 on 13 September 2026 — a tree-shaken bundle of just the candlestick series, the grid component and the canvas renderer is 460 KB minified and 157 KB gzipped. A realistic trading set that adds bars, lines, tooltip, dataZoom, axisPointer and legend is 611 KB and 207 KB. Importing the whole library is 1.11 MB and 374 KB.

Is Apache ECharts still actively released?

Yes. The repository is not archived, the last commit on master was 12 September 2026, and 6.1.0 was published to npm on 19 May 2026 — the first feature release since 6.0.0 in July 2025.