Apache ECharts
Apache-2.0 general-purpose charting with a candlestick series and nothing else financial.
by Apache Software Foundation
Last updated
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.
graphicandmarkLineplace 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: trueis 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.
appendDataexists, but the API reference limits incremental rendering to scatter and lines; live ticks meansetOptionwith 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.enableddefaults tofalse, 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
- KLineChart — Apache-2.0 canvas candlesticks with 27 indicators built in and zero dependencies.
- Lightweight Charts — The chart and nothing else — six series types on canvas, attribution required.
- Plotly.js — Candlestick and OHLC traces in an MIT library the notebook already has installed.
- amCharts 5 Stock Chart — Linkware — free in commercial products as long as the amCharts link stays on the chart.
- AnyStock — Per-product, per-domain commercial licensing with a watermark until you pay.
- Highcharts Stock — Commercial 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.