Apache ECharts
What is Apache ECharts
Apache ECharts is a full-featured, enterprise-grade visualization library from the Apache Software Foundation, released under the Apache 2.0 license. Currently at v6.0.0, it has ~1.8M weekly npm downloads and ~65.9k GitHub stars.
ECharts offers 20+ chart types with Canvas, SVG, and WebGL rendering:
- Line, bar, pie, scatter, radar
- Heatmap, treemap, sunburst, Sankey, gauge
- Graph/network, geographic map
- 3D (bar3D, scatter3D, surface)
- Parallel coordinates, funnel, boxplot
For React projects, integration is available via the echarts-for-react community wrapper (~616k weekly downloads).
echarts-for-react is a community-maintained wrapper, not an official Apache project. It is stable and widely used (~616k weekly downloads), but review its release cadence against ECharts core versions before adopting.
ECharts supports tree-shaking — you can import only the chart types and renderers you need to reduce bundle size.
Why we recommend it
- Massive chart type coverage — 20+ types including geographic maps, 3D surfaces, gauge, graph/network, heatmap, boxplot, parallel coordinates, and more
- Handles big data — Canvas and WebGL renderers handle millions of data points without degradation; built-in
datasetanddataZoomcomponents for large-scale exploration - Rich interactivity — drill-down, brush selection, linked/synchronized charts, animations, and event handling out of the box
- Server-side rendering — supports Node.js SSR for generating chart images or pre-rendered HTML
- Strong community & backing — Apache Software Foundation governance, 65k+ GitHub stars, mature documentation in multiple languages
When to use
- Complex or exotic chart types not available in Recharts — geographic maps, 3D, gauge, graph networks, parallel coordinates
- Dashboards with very large data volumes (tens of thousands to millions of points)
- Projects requiring advanced interactivity — brush selection, drill-down, linked charts
- Scenarios where server-side chart rendering is needed (e.g., PDF/image export pipelines)
- Non-React or multi-framework projects — ECharts is framework-agnostic
When NOT to use
- Standard dashboard charts in a React + shadcn/ui project — Recharts integrates with far less friction
- Projects where bundle size is a major concern — ECharts' full build is significantly larger than Recharts (tree-shakeable, but still heavier)
- Teams that prefer component-composition APIs over configuration objects — ECharts uses a JSON option pattern, not JSX
- Small projects needing only a handful of simple charts
ECharts uses a configuration-driven API (a large JSON option object), not React component composition. Charts won't feel as "React-idiomatic" — state mapping, ref management, and lifecycle differ from typical component patterns. Budget time for the learning curve if your team is used to JSX-style APIs.
Why over Recharts
- Chart type breadth — geographic maps, 3D, gauge, graph networks, heatmaps — types Recharts simply doesn't offer
- Performance at scale — Canvas/WebGL rendering handles data volumes where SVG chokes
- Framework-agnostic — usable outside React; the same ECharts knowledge transfers to Vue, Angular, or vanilla JS projects
- Advanced interactivity — brush selection, data zoom, linked charts, and drill-down are built in, not bolted on
For standard React dashboards, especially with shadcn/ui, prefer Recharts — it's simpler and better integrated with the stack.
Resources
- Official Apache ECharts docs
- GitHub repository
- ECharts examples gallery
- echarts-for-react — React wrapper
- Recharts — simpler alternative for standard React charts
- React — UI framework (use with
echarts-for-reactwrapper)