Linkware — free in commercial products as long as the amCharts link stays on the chart.
JavaScript Charting Libraries for Finance
What draws the candles inside a product you ship — a finished renderer or a toolkit to assemble, how many bars it survives, and what the licence costs.
Last updated
For a product you sell, the honest default is free: Lightweight Charts if you want candles, panes and a crosshair already wired and will build the analysis layer yourself, KLineChart if you want the same licence at about the same size with indicators and drawing tools included, Apache ECharts if the chart is one of many in a dashboard. Pay — or keep a vendor's link on the chart — when you want a large indicator set and an analyst's toolbar finished for you. The first real question is not price but whether you are buying a finished financial chart or a toolkit to assemble one from — that gap is an order of magnitude of work.
- Candles, panes, crosshair, out of the box, free — Lightweight Charts.
- The same licence and size, plus 27 indicators and 16 drawing overlays — KLineChart.
- One chart among many in a dashboard — Apache ECharts.
- Already in a Python or scientific stack — Plotly.js.
- 48 indicators, range selector, data grouping, a paid licence and support hours — Highcharts Stock.
- A finished trading toolbar, free in a commercial product while the branding link stays — amCharts 5 Stock Chart.
- The chart traders already recognise, free to a company shipping a free public product — TradingView Advanced Charts.
- One public website with no login, paid once — AnyStock.
- A WebGL and WebAssembly engine, priced per developer per year — SciChart.js.
Where the data behind the chart is stored is a separate shopping trip with no shared vendor or price model, and it lives in tick data storage.
A chart, or a charting toolkit
Decide first which of three things you are buying, because the gap between them is most of the project.
A charting toolkit — ECharts, Plotly.js — gives you a candlestick series type, and everything a trading interface needs around it is yours to assemble: indicator panes, crosshair synchronisation between panes, drawing tools, symbol and timeframe switching, session breaks, the right-hand price scale. Neither ships a single indicator; a moving average is a second series over numbers you computed yourself.
A dedicated financial renderer ships the panes, the crosshair and the price scale already wired, and leaves out the indicator library and the drawing tools entirely. Lightweight Charts is that, on canvas. SciChart.js is that on WebGL — multi-pane surfaces with synchronised zoom and cursors — and, although it is marketed at trading platforms, its published package contains no MACD, no RSI, no Bollinger Bands and no Fibonacci tool; the indicator panels in its demos are example code you copy into your own project.
A financial chart arrives with the analysis layer built in. KLineChart registers 27 indicators and 16 drawing overlays. AnyStock documents 36 or 37 indicators — its two lists disagree — and 18 drawing tools. amCharts 5 Stock Chart ships 34 indicator modules and 19 drawing-tool modules behind a toolbar with period selection, series switching and comparison mode. Highcharts Stock lists 48 indicators plus a Stock Tools toolbar end users drive without a developer. Advanced Charts claims 100+ indicators and 110+ drawing tools, though the same TradingView page says 80+ elsewhere.
None of the nine ships market data. Each draws arrays you hand it, and Advanced Charts expects a Datafeed API you write against a provider you already pay for. Watchlists and order entry are TradingView's Trading Platform, which is a separate product and not free.
How it draws decides how many bars it survives
Canvas and WebGL renderers scale with pixels; SVG renderers create a DOM node per point. Lightweight Charts, KLineChart and amCharts draw to canvas, as ECharts does by default; Plotly.js, Highcharts Stock and AnyStock draw SVG.
Plotly.js has no WebGL candlestick or OHLC trace — its scattergl acceleration covers lines and
scatter, which Plotly documents at around a million points — so a price chart is SVG at any size,
each bar its own path. Highcharts' boost module swaps a WebGL canvas into the SVG for very large
series, at the cost of animations, dashed lines, stacking and non-circular markers; the vendor's
own boost sample is a stock chart of 600 series and 72,000 points. Highcharts Stock, AnyStock and
amCharts all lean on data grouping instead, aggregating bars as you zoom out until they are wide
enough to see. That is a good answer, and it is a different answer from "it is fast".
SciChart.js is the WebGL answer: a WebAssembly engine with WebGL acceleration rather than the DOM
or a 2D canvas context. The vendor claims real-time rendering of up to 100 million points at 60
FPS; that is a marketing figure with no published method, and nobody here has run it. Lightweight
Charts publishes no ceiling at all — "responsive even with thousands of bars" is the vendor's
phrasing — and added opt-in data conflation in 5.1.0 for datasets of tens of thousands of points
and up. ECharts switches candlesticks into large mode above 600 bars, after which a single bar
can no longer be styled on its own.
Bundle size is a cost your users pay
Plotly.js is the outlier: 4.29 MB minified for the full build, 1.33 MB minified and gzipped, and
even the finance partial bundle is 432 KB gzipped. At the other end KLineChart is 58 KB gzipped
and the Lightweight Charts standalone build 62 KB — TradingView's marketing still says 35 KB, so
budget against the real number. In between sit AnyStock's standalone build at 71 KB gzipped,
Highcharts Stock at about 136 KB before another 21 KB of indicators, a candlestick-only ECharts
build at 157 KB, and amCharts core plus stock at 207 KB. TradingView lists Advanced Charts at
670 KB, and SciChart.js loads its WebAssembly as separate files — scichart2d.wasm alone is
1.28 MB — which also means a bundler configuration step. If the chart is the whole page, this
matters less than it looks; if it is one widget on a marketing site, it is the decision.
Check the financial furniture individually
"Supports candlestick charts" is the cheapest claim in this market. Volume in a linked pane, a crosshair that moves across panes together, indicator overlays on the price scale rather than a second axis, drawing tools that persist, and non-linear time so that weekends and overnight gaps do not open holes in the series: each is either built in or homework, and general-purpose libraries default to the linear time axis that puts a two-day gap in every equity chart.
The licence words, and what each one actually permits
This is the part that decides whether you may ship what you built. Read the LICENSE file of the version you pin, not the badge in the README.
OSI open source — MIT or Apache-2.0, no conditions on what you build or sell beyond carrying the licence and, under Apache-2.0, the NOTICE file. Apache ECharts, Plotly.js and KLineChart. KLineChart's NOTICE credits TradingView's Lightweight Charts as well as itself, so shipping it means shipping a TradingView attribution in your notices — though nothing has to be drawn on the chart.
Apache-2.0 with an attribution you must display. Lightweight Charts is a real Apache-2.0
licence, plus a requirement to show the attribution notice from its NOTICE file and a link to
TradingView on a page of your site or app that users can reach. The built-in attributionLogo
option, on by default, draws that link on the chart and covers the link half. Turning it off
without putting the credit somewhere else is a licence breach, not a styling choice.
Linkware — free commercially, while the vendor's link stays on the chart. amCharts 5 Stock Chart's LICENSE permits use in any project, commercial ones included, on condition that you do not disable, hide or alter the branding link drawn on every chart and that you ship the LICENSE file. It is not open source: there is no SPDX identifier, and you may not sell the library or distribute it other than inside an application. Paying is what removes the link; there is no feature difference.
Free for non-commercial use, per-developer otherwise. Highcharts sells seats: on the SaaS licence, which covers one public application, 366 dollars per developer per year for Core and another 366 for Stock, with perpetual licences also available, and every developer who touches the code needs one. Its free licence is narrower than the phrase suggests — a natural person's non-commercial project or an accredited school's coursework — and EULA 1.0 of 20 January 2026 explicitly excludes freelance work, side-hustles, monetised blogs, non-profits and internal prototyping.
Free to build with, watermarked, and expiring. SciChart.js's Community Edition is what
npm install scichart gives you without a key: non-commercial use plus a commercial evaluation of
"a reasonable time period, for example 30-60 days", a watermark that can be moved but not hidden,
telemetry that cannot be turned off, and validity of six months from the release date of the
version you shipped, after which the chart draws an error. Paid licences are per developer, with
runtime keys locked to domains you register; a key that is not domain-locked comes only with the
cross-platform bundles.
Per product, per registered domain, watermarked until paid. AnyStock's free build draws an AnyChart watermark on every chart, and hiding it works only once a licence key is registered. A licence covers one product on one domain registered at purchase, for a fixed number of developers; changing the domain means emailing the vendor, and a Website licence is void the moment the site has a login of any kind. A free licence for education and non-profit projects exists, granted by request through a form.
Free, but not open, and conditional. TradingView's Advanced Charts library is the full chart at
no cost under its own agreement, and the conditions are real: licences go to companies rather than
individuals, the project must be a public service offered free to its users rather than internal,
personal or behind a paywall, your project may not be open source, you must publish an
announcement of the partnership, and the attribution link must stay, without nofollow or
sponsored on it. The agreement's only dollar figure is liquidated damages of fifty thousand per
proven breach. There is no OSI licence anywhere in that arrangement.
What it costs
Nothing at all for four of the nine — Apache ECharts, Plotly.js, KLineChart and Lightweight Charts have nothing for sale — and nothing in money for two more, Advanced Charts and amCharts, whose price is a link and, for TradingView, eligibility. The other three charge in different shapes, and the shape matters more than the headline:
- Per developer, per year. Highcharts Stock is $732 per developer per year for Core plus Stock on one public application, $370 for internal use only, with perpetual equivalents from $850 once. SciChart.js 2D is $1,349.66 per developer for a one-year term — the store opens on the three-year monthly rate, $67.48 — and the cheapest key not locked to registered domains is the 2D Pro bundle at $2,336.76 per developer for a year.
- Per seat, to remove a link. amCharts 5 Stock Chart is $64 a year or $144 once per developer for public sites with no login, and $224 a year or $520 once behind a login; support on the cheapest tier is another $190 a seat a year.
- Per product and domain, once. AnyStock's Website licence is $139 once for one developer on one domain with no login; anything behind a login is SaaS, $499 a year for ten developers or $1,499 once. A $49 first-year rate for pre-revenue startups reverts to the SaaS fee in year two.
There is no affiliate money anywhere in this category, which is roughly why nobody had written the comparison.
All 9 tools in Charting Libraries
Compiled from each vendor’s own documentation, pricing page and terms — no card here is marked hands-on yet.
Showing 9 of 9
Sort by
Per-product, per-domain commercial licensing with a watermark until you pay.
Apache-2.0 general-purpose charting with a candlestick series and nothing else financial.
Commercial JS financial charting — 48 indicators, a navigator, a per-seat licence.
Apache-2.0 canvas candlesticks with 27 indicators built in and zero dependencies.
The chart and nothing else — six series types on canvas, attribution required.
Candlestick and OHLC traces in an MIT library the notebook already has installed.
WebGL and WebAssembly speed. The free build is watermarked and times out every 6 months.
Free, closed-source and companies-only — the licence is the whole decision.
Background
How this part of the industry works, rather than which product to pick.
How to
One task each, the cards that do it, and what breaks on the obvious attempt.
FAQ
What is the cheapest way to put a candlestick chart in a commercial product?
Free, and legitimately so — Lightweight Charts or KLineChart under Apache-2.0, Apache ECharts, or Plotly.js under MIT, with Lightweight Charts also requiring a visible link back to TradingView. amCharts 5 Stock Chart is free in a commercial product too, as long as its branding link stays on the chart. The paid path starts at 64 dollars a seat a year to remove that link, and Highcharts Stock is 732 dollars per developer per year for Core plus Stock on one public application.
Which JavaScript charting library handles the most bars?
The renderer decides it, and only one library here publishes a figure. SciChart.js renders through WebAssembly and WebGL and claims up to 100 million points at 60 FPS — a vendor number with no published method behind it. Plotly.js draws candlesticks in SVG with no WebGL candlestick trace, and Highcharts Stock's answer to a long series is data grouping, folding bars into wider ones as you zoom out, which is a good answer and a different one from raw speed.
Do I need a charting library or a charting toolkit?
There are three shapes, not two. A general toolkit — Apache ECharts, Plotly.js — gives you a candlestick series and leaves panes, crosshair and indicators to you; a bare financial renderer — Lightweight Charts, SciChart.js — wires the panes and crosshair but ships no indicators; and a financial chart — KLineChart, Highcharts Stock, amCharts 5 Stock Chart, AnyStock, TradingView Advanced Charts — arrives with indicators and drawing tools built in.
Is TradingView's charting library free to use commercially?
Two different products, two different answers. Lightweight Charts is genuinely Apache-2.0, with a NOTICE requiring the attribution notice and a link back to TradingView. Advanced Charts — the full chart with indicators and drawing tools — costs nothing but is not open source. Licences go to companies rather than individuals, the project must be public and free to its users, and the attribution link must stay without nofollow or sponsored on it.
Does bundle size matter for a chart library?
It depends where the chart sits. Plotly.js is the outlier at 1.33 MB minified and gzipped for the full build and 432 KB for its finance partial bundle, against about 58 KB for KLineChart and 62 KB for Lightweight Charts. If the chart is the whole page that matters less than it looks; if it is one widget on a marketing page, it is the decision.