Skip to main content

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).

note

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 dataset and dataZoom components 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
caution

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โ€‹