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) - Complexity Factors โ estimation multipliers for data visualization features