ECharts is an open-source JavaScript visualisation library.
Websites Using ECharts
No websites detected yet. Analyze a website to contribute data.
What Is ECharts?
Apache ECharts is a powerful, open-source JavaScript charting and data-visualization library used to render interactive charts and graphics directly in the browser. Maintained as a top-level project of the Apache Software Foundation and originally created at Baidu, ECharts has become one of the most widely used visualization libraries in the world, especially prominent across dashboards, analytics products, and data-heavy websites in the global developer community.
In plain terms, ECharts answers the question "how do we turn data into clear, interactive visuals on a web page?" A developer feeds it a configuration object describing the data and how it should look, and ECharts draws the result, line, bar, pie, scatter, candlestick, heatmap, treemap, geographic map, or one of many other chart types, into the page. The charts are interactive out of the box: users can hover for tooltips, click legends to toggle series, zoom and pan, and watch smooth animated transitions when data updates.
ECharts is known for handling large datasets and complex visualizations gracefully. It can render with either SVG or Canvas, supports incremental rendering for big data, and includes built-in components for axes, legends, tooltips, data zoom, and visual mapping. Because it is feature-rich yet free and permissively licensed under Apache 2.0, it is a popular choice for everything from internal business dashboards to public-facing data journalism and government statistics portals.
It is important to be precise about what ECharts is and is not. It is not a browser extension, and it is not a hosted service or a SaaS product. It is a client-side JavaScript library that a site's developers include in their front-end code. The charts are computed and drawn in the visitor's browser from data the site provides. That client-side nature is exactly why ECharts is detectable from the outside: the library's script loads on the page, it exposes a recognizable global object, and the charts it draws leave characteristic markup in the DOM.
Understanding the context clarifies the product. ECharts targets developers building data-rich interfaces who need more power and flexibility than a simple chart widget offers, but who do not want to draw visualizations from scratch with a low-level graphics library. It sits in the middle ground: more capable and higher-level than hand-coding Canvas or raw SVG, yet more configurable and feature-complete than minimalist charting helpers. That balance, breadth of chart types, strong performance, and a declarative configuration model, is the core of its appeal.
How ECharts Works
At a high level, ECharts works by taking a declarative configuration and rendering it into a container element. A developer first includes the ECharts library, then selects a DOM element (typically a <div> with set dimensions) and calls echarts.init() on it to create a chart instance. That instance is the handle through which all subsequent operations happen.
The heart of ECharts is the option object. Rather than issuing imperative drawing commands, the developer describes the chart declaratively: the series (the actual data and chart types), the xAxis and yAxis, the tooltip, the legend, title, colors, and animation settings all live in a single JavaScript object. Calling setOption() with that object tells ECharts to render or update the chart. To change the chart later, the developer simply calls setOption() again with new data or settings, and ECharts computes the difference and animates a smooth transition.
Rendering is handled by a pluggable engine that can output Canvas or SVG. Canvas is the default and excels at large datasets and pixel-dense visuals, while SVG is useful for crisp scaling and lower memory use in some scenarios. ECharts includes a layout and coordinate-system layer that supports Cartesian grids, polar coordinates, geographic maps, and more, so a single library covers radically different chart families with a consistent configuration style.
Interactivity and responsiveness are built in. ECharts wires up tooltips, legend toggling, data zoom, brushing, and visual mapping automatically based on the option object, so hovering a data point shows a tooltip and clicking a legend entry hides a series without extra code. The instance exposes a resize() method so charts can adapt to container size changes, and an event API lets developers respond to clicks and other interactions on chart elements.
For larger applications, ECharts offers performance features like incremental and progressive rendering for very large series, data sampling, and a dataset component that separates data from styling so the same data can feed multiple charts. The library is also modular: builds can include only the chart types and components a project uses, keeping the bundle smaller. Because all of this runs in the browser, the page's own server does no chart computation, the data arrives (often via an API), and ECharts does the drawing client-side. Since a heavy visualization library is loaded JavaScript, keeping it efficient matters for page speed, and our guide on how to make your website load faster covers techniques like deferring and code-splitting large scripts.
How to Tell if a Website Uses ECharts
ECharts leaves several reliable fingerprints. Because StackOptic analyzes a URL from the server side, it looks at the same signals you can check manually with browser tools, curl, or a detection extension.
The ECharts script and CDN paths. The strongest signal is the library file itself. Look in the page source and Network tab for a script whose filename contains echarts (for example echarts.min.js), frequently served from a CDN such as jsDelivr, unpkg, or cdnjs with a path like .../echarts@5/dist/echarts.min.js. A request for an echarts script is close to definitive.
The global echarts object. ECharts exposes a global named echarts when loaded via a script tag. Open the DevTools Console and type echarts; if it returns an object (with properties like version and the init function) rather than undefined, the page is running ECharts. Checking echarts.version even reveals the major version.
Chart container markup. ECharts renders into a container element and injects its own canvas or SVG. Inspecting a chart in DevTools typically reveals a <div> with an inline-styled <canvas> child (or an <svg>), plus a hidden helper element ECharts adds for tooltips and accessibility. A canvas sized to the chart with a sibling tooltip layer is a recognizable pattern.
The tooltip and zr (ZRender) hints. ECharts is built on a rendering engine called ZRender, and its tooltip and DOM helpers carry recognizable inline styles and class hints. Hovering a chart and inspecting the floating tooltip element, or spotting zr-related attributes, reinforces the detection.
Here is how to check each signal yourself:
| Method | What to do | What ECharts reveals |
|---|---|---|
| View Source | "View Page Source," search for echarts | The script reference and any CDN path/version |
| Browser DevTools | Open the Network tab and reload | A request for echarts.min.js from a CDN or local path |
| DevTools Console | Type echarts then echarts.version | A defined object and the version string confirm ECharts |
| Inspect element | Right-click a chart, "Inspect" | A <canvas>/<svg> inside a sized <div> plus a tooltip layer |
| curl -s | `curl -s https://example.com | grep -i echarts` |
| Wappalyzer / BuiltWith | Run on the page or look up the domain | Identifies "Apache ECharts" under JavaScript graphics |
A fast command-line check is curl -s https://example.com | grep -i "echarts". A match for an echarts.min.js URL is strong proof. The most reliable confirmation, though, is typing echarts.version in the Console. For the broader methodology, see our guides on how to check what JavaScript libraries a website uses and how to find out what technology a website uses.
A few caveats make detection more robust. Many modern applications bundle ECharts through a build tool (Webpack, Vite, Rollup) and import it as a module, so the obvious echarts.min.js filename may not appear in the page source and the global echarts object may not be exposed on window. In that case the surest tells are structural: inspecting a chart still reveals the characteristic ECharts canvas-in-a-div with its tooltip layer, and the rendered DOM and ZRender hints persist even when the script name is obscured. Conversely, a site that loads ECharts from a public CDN is trivial to confirm because both the script request and the global object are visible. Because no single tell is guaranteed, the dependable approach combines several at once: an echarts script or module, the global object and version, and the canvas-plus-tooltip DOM pattern. Server-side analysis is well suited to reading the script references directly from the unmodified HTML, while a quick Console check confirms the runtime when the library is bundled.
Key Features
- Rich chart library. Line, bar, pie, scatter, candlestick, radar, heatmap, treemap, sunburst, sankey, graph, and geographic map charts in one library.
- Declarative configuration. A single option object describes data, axes, styling, and interactivity, with
setOption()driving updates. - Canvas and SVG rendering. A pluggable engine handles large datasets on Canvas or crisp, lightweight SVG output.
- Built-in interactivity. Tooltips, legend toggling, data zoom, brushing, and visual mapping work out of the box.
- Big-data performance. Incremental and progressive rendering, data sampling, and a dataset component for high-volume series.
- Smooth animations. Animated transitions when data or options change, with fine-grained control.
- Theming and modularity. Custom themes plus tree-shakeable, modular builds that include only what a project uses.
Pros and Cons
Pros
- Exceptionally broad chart-type coverage, from basic bars to complex network and geographic visualizations.
- Strong performance with large datasets thanks to Canvas rendering and incremental updates.
- Declarative option model makes complex, interactive charts approachable without low-level drawing code.
- Free, open source under Apache 2.0, with an active community and thorough documentation.
Cons
- A large feature set means a sizable library; without modular builds the bundle can be heavy.
- The configuration object grows complex for highly customized charts, with a learning curve to master.
- Less idiomatic in some frameworks than purpose-built React/Vue chart components (though wrappers exist).
- Deep custom visuals can still require understanding the underlying rendering model.
ECharts vs Alternatives
ECharts competes with other JavaScript visualization libraries, ranging from low-level toolkits to high-level chart components. The table below clarifies where it fits.
| Library | Level | Best for | Standout strength |
|---|---|---|---|
| Apache ECharts | High-level, config-driven | Dashboards, data-heavy sites, big datasets | Breadth of charts, performance, interactivity |
| D3.js | Low-level toolkit | Bespoke, fully custom visualizations | Total control over every visual element |
| Chart.js | High-level, simple | Common charts with minimal setup | Lightweight, easy to learn |
| Highcharts | High-level, commercial | Business charts with polished defaults | Rich features, strong support (paid license) |
| Plotly.js | High-level, scientific | Statistical and scientific plotting | Built-in analytical chart types |
If a page turns out to use a different visualization tool, the same techniques identify it, a script reference and a recognizable global object or DOM pattern. For a contrasting kind of embedded JavaScript component that also fingerprints a page, you can compare how a site-search layer like Doofinder shows up, and our guide on how to check what JavaScript libraries a website uses covers the full methodology for any front-end dependency.
Use Cases
ECharts is most at home in data-rich interfaces where interactive charts are central to the experience. A SaaS analytics dashboard uses it to render real-time line and bar charts that users can hover, zoom, and filter, updating smoothly as new data streams in. Business intelligence tools, monitoring consoles, and admin panels rely on its breadth so a single library can cover every chart type the product needs.
It also fits data journalism and public statistics portals presenting interactive graphics to a general audience, financial sites rendering candlestick and depth charts, IoT and operations dashboards visualizing sensor data, and geographic visualizations plotting data on maps. Because ECharts handles large datasets well, it is a common choice when a chart must remain responsive even with tens of thousands of points.
Consider a few concrete scenarios. A product team building an analytics dashboard standardizes on ECharts so engineers can express dozens of chart types through one consistent configuration API, then wire them to a live data feed. A newsroom publishes an interactive feature where readers explore a dataset through zoomable, tooltip-rich charts rendered entirely in the browser. A monitoring platform displays high-frequency time-series data using incremental rendering so the charts stay smooth under heavy load.
From a technology-research standpoint, detecting ECharts on a domain is a useful signal about the nature of the site. It typically indicates a data-driven application or a content team that invests in interactive visualization, which is meaningful context when profiling analytics products, fintech tools, or data-heavy media. Surfacing that signal automatically across many domains, rather than inspecting each page by hand, is exactly what technology detection is built to do, and pairing it with other front-end findings paints a fuller picture of how a site is built.
Frequently Asked Questions
What is Apache ECharts used for?
Apache ECharts is used to create interactive charts and data visualizations in web pages. Developers configure it with a declarative option object, and it renders line, bar, pie, scatter, geographic, and many other chart types into the browser, complete with tooltips, zooming, legends, and animated updates. It is especially popular for dashboards, analytics products, and any data-heavy website that needs flexible, high-performance charts.
How can I tell for free if a site uses ECharts?
Yes, you can confirm it for free. View the page source and search for echarts, open DevTools and check the Network tab for an echarts.min.js request, or type echarts (and echarts.version) in the Console; a defined object confirms it. You can also inspect a chart to see the characteristic canvas-in-a-div with a tooltip layer. Tools like Wappalyzer and BuiltWith identify Apache ECharts, and curl -s URL | grep -i echarts works from any terminal.
Is ECharts better than D3.js?
They serve different needs. ECharts is a high-level, configuration-driven library that produces polished, interactive charts quickly across many chart types. D3.js is a low-level toolkit that gives you complete control to build any custom visualization from primitives, at the cost of writing far more code. Choose ECharts for fast, standard-to-advanced charts; choose D3 for bespoke, one-of-a-kind graphics where you need total control.
Does ECharts use Canvas or SVG?
Both. ECharts has a pluggable rendering engine and defaults to Canvas, which performs well with large datasets and dense visuals. You can switch it to SVG rendering, which offers crisp scaling and can use less memory in some scenarios. The choice is set when initializing the chart, and the rest of the configuration stays the same regardless of renderer.
What is the echarts global object?
When ECharts is loaded via a script tag, it registers a global object named echarts in the browser. That object provides the init function used to create charts, a version property, and other utilities. Typing echarts in the DevTools Console and getting an object back (rather than undefined) is a quick, reliable way to confirm a page is running ECharts, though bundled builds may not expose this global.
Want to detect ECharts and the rest of a site's front-end stack automatically? Run any URL through StackOptic at https://stackoptic.com.
Alternatives to ECharts
Compare ECharts
Analyze a Website
Check if any website uses ECharts and discover its full technology stack.
Analyze Now