What ECharts Does
- 40+ chart types — line, bar, scatter, pie, radar, heatmap, treemap, sunburst, sankey, funnel, gauge, graph, map, candlestick, boxplot, parallel
- 3D charts — ECharts GL extension
- Geographic — world/country maps, GeoJSON, Baidu map integration
- Interactive — zoom, brush, data zoom, legend filter
- Streaming data — append-only updates for realtime
- Canvas or SVG — switch renderers
- Themes — built-in + custom
- Responsive —
chart.resize()or container watching
Architecture
Canvas-based renderer by default, SVG optional. Option object is declarative (JSON-like). Chart holds option snapshots internally for diff updates. Built on top of the ZRender graphics library (also Apache project).
Self-Hosting
Client library, ships in bundle.
Key Features
- 40+ chart types
- Canvas + SVG renderers
- Enterprise-scale datasets (100K+ points)
- Geographic and 3D
- Streaming/incremental updates
- WebGL via ECharts GL
- Dark mode themes
- Responsive by design
- Apache 2.0 (permissive)
Comparison
| Library | Chart Types | Canvas/SVG | Geo | Bundle |
|---|---|---|---|---|
| ECharts | 40+ | Both | Built-in | ~350KB |
| Chart.js | 8 | Canvas | No | ~60KB |
| Highcharts | 30+ | SVG | Plugin | ~150KB |
| Plotly | 40+ | SVG+WebGL | Built-in | ~3MB |
| D3 | Any | Both | Plugin | Modular |
FAQ
Q: ECharts or Chart.js — which should I choose? A: Chart.js aims for simplicity (8 chart types); ECharts aims for completeness (40+ charts, plus maps and 3D). Use ECharts for complex enterprise dashboards and Chart.js for simple frontend displays.
Q: Bundle too large?
A: v5 supports on-demand imports like import { BarChart } from "echarts/charts"; after tree-shaking, only what you use remains.
Q: How do I integrate with React/Vue?
A: There are official echarts-for-react / vue-echarts wrappers, or you can initialize manually with a ref + useEffect.
Sources & Credits
- Docs: https://echarts.apache.org
- GitHub: https://github.com/apache/echarts
- License: Apache 2.0