Apache ECharts

tomtomistaken | 1621 points

We've tested almost every visualization library under the sun when building Briefer (https://briefer.cloud) and I can confidently say that Apache ECharts is the best.

The main issues with other libraries is that they're either:

(a) ugly (b) difficult to use (i.e. having to do things imperatively) (c) not flexible enough

Apache ECharts solve these 3 problems. It's pretty by default, it allows us to mount/calculate the declarative spec for the graphs in the back-end and then only send the desired spec to the front-end so it can render, and it's also extremely flexible to the point we can support everything that traditional BI tools can do.

We've never had to extend the lib to do anything new, everything we need is already there.

Glad to see this great piece of work on top of HN.

lucasfcosta | 4 days ago

I'll toss some props to `go-echarts` [1], which allows you to declare charts with Golang types and it all gets bound to JSON automagically by Golang's JSON marshaller. I've used it for many projects and whenever there's an issue/PR, the maintainer responds quickly.

It's fun to Go-embed JavaScript functions and SQL queries, for this weird blend of data, SQL, Go and Javascript. Here's a Golang example that pulls data from a DuckDB and creates a baked-in candlestick chart file with JavaScript tooltips. [2]

[1] https://github.com/go-echarts/go-echarts

[2] https://github.com/NimbleMarkets/dbn-duckduck-goose/blob/mai...

neomantra | 4 days ago

ECharts is in my opinion the best out there. It surprisingly doesn't come up in a lot of lists or search for charting libraries. I've tried them all: chart.js, google charts, amCharts, Highcharts, ApexCharts. We use it in our tool/library https://docs.chartsql.com/

rorylaitila | 4 days ago

After many trials with other libraries, my team settled on Apache ECharts last year, and we do not regret it: excellent documentation, performant, highly configurable yet easy to use, and supporting all the chart types we need (bars, stacked bars, maps, zoomable/scrollable time series, and scatter plots).

evaneykelen | 4 days ago

The line race looks so cool.

https://echarts.apache.org/examples/en/editor.html?c=line-ra...

Toggle the switches to trigger the race. By the way, well done Norway.

FredPret | 4 days ago

If you're looking for a chart library for a web client, I also recommend charts.css. It's a godsend honestly, the concept is way simpler than most charts libraries and can achieve the same thing. Makes it so simple to use the old way, server side rendering, htmx, etc...

https://chartscss.org/

simlevesque | 4 days ago

I’d keep it.

Announcement: “ECharts, a JS charts package” My assumption: It’ll be unmaintained within a year.

Announcement: “Apache ECharts, a JS charts package” My assumption: It’ll be maintained next year.

miiiiiike | 4 days ago

Glad to see Echarts getting the recognition it deserves. It is arguably the best open-source visualization library out there.

Here are some points others haven't mentioned:

(a) Uses canvas by default. Faster than any other library I've used.

(b) Extremely flexible. Want to write your own widget on top of the graphs (eg., a customized tooltip). Possible!

(c) Provides a lot of metadata. Want to get the position of a point in the rendered chart, to use in your code? Entirely possible!

(d) Works really well when importing into legacy web apps. They even provide an option to get a customized build on their site.

(e) Very good at handling streamed data. The animation is very smooth between data changes.

I've been using it for almost 7 years now for various production and personal projects, and it's still my go-to library. Their docs have come a long way since then.

They do have long standing bugs that get annoying, e.g, dealing with 0 when using log scales, provided there are workarounds for it. I haven't noticed any blocking bugs for most common usecases.

pavish | 3 days ago

I was just looking into charting libraries for React/React Native, and Apache ECharts seems like a great contender for cross-platform data visualization. The libraries that I came across - react-echarts (https://github.com/hugocxl/react-echarts) and react-native-echarts (https://github.com/wuba/react-native-echarts) - both seem to be actively developed, and the fact that it's under Apache is a huge plus for future development prospects and maintenance of the project.

smjburton | 4 days ago

In a quick web demo, this library was the only one that could handle interactive viewing and manipulation of a very large graph using its GraphGL component ! I don’t think it's a well-known visualization library, but it's quite interesting ...

JacobiX | 4 days ago

Noticed it uses HTML5 canvas to render data by default. To screen readers, am I correct in understanding that this is equally accessible as when people share screenshots of text?

There is an SVG option that looks identical but it doesn't say when you're supposed to use that, or why canvas exists (and is the default) if SVG would work equally well. Then again, setting an example chart to use SVG rendering (I was looking at the basic scatter plot functionality, since I use that most often), I can't seem to tab or otherwise navigate through the data points, so it may just be impossible to get the data read out to you like "first data point, year 2006 students 25 939" (if the axes were labeled "year" and "students", for example; they're not labeled in the example but it could still read out the positions of the points)

lucb1e | 4 days ago

We [1] just added to ECharts as a charting library for our AI and are switching the default GUI charts over to it as well. We did a pretty extensive review before selecting it. ECharts won because it's excellent, and very pretty.

1. https://sourcetable.com

mceoin | 4 days ago

Apache Superset switched many of their interesting charts over to ECharts:

https://preset.io/blog/2021-4-1-why-echarts/

skadamat | 4 days ago

Impressive work! Their main demo there pays some homage to Mike Bostock's d3 transitions showcase from 2011: https://mbostock.github.io/d3/talk/20111116/transitions.html (click to start)

paulirish | 4 days ago

We use ECharts extensively in Evidence (https://github.com/evidence-dev/evidence). Overall has been a delight.

amcaskill | 4 days ago

Superset[1] BI tool is a good example of how useful ECharts are

[1] https://superset.apache.org/

grzaks | 4 days ago

Just a nit: the part that describes its mobile optimized (and pretty much all other pages describing the features) does not load correctly on mobile.

https://echarts.apache.org/en/feature.html#mobile

darth_avocado | 4 days ago

What a complete exhaustive set of examples! Very useful. Both SVG and Canvas renderers differ very little and both seem to be super performant. The declarative API is just so simple... harkens back to the age of batteries-included web frameworks like Ext.

lxe | 4 days ago

Late to the party here but we (Sentry) have been using ECharts since 2018 (https://github.com/getsentry/sentry/pull/9072) and still holding strong!

billyvg | 16 hours ago

I really wish the “slowly fade elements in as they scroll onto the screen” would die.

cwillu | 4 days ago

we use eCharts for all the visualizations in https://www.definite.app/.

We evaluated pretty much every option and it's the best non-react option. Recharts honestly seems a little nicer if you're using React, but our frontend is in Vue.

mritchie712 | 4 days ago

What does this have over Plotly, Chart.js, D3, Bokeh, etc

nylonstrung | 4 days ago

22.7MB to download the latest release from Github (87.3MB unzipped). That's an insane amount of JS to download and compile (people often complain about React being ~50kb).

The default recommended way to use it is `import * as echarts from 'echarts'` which means you are getting the WHOLE thing.

Does anyone with experience know how big is it when you pick and choose modules?

hajile | 4 days ago

I don't think I ever see Wechat and Weibo in the "Follow Us" box. Was this donated to Apache by a Chinese company? I feel like we will see a lot more of this in the coming years.

9283409232 | 4 days ago

The only thing I ever want out of these chart libraries is to be able to theme them. Does anyone know how customizable the theming for ECharts is?

OsrsNeedsf2P | 4 days ago

I would love it if was possible to download the rendered chart, ideally headless. In peak traffic I would prefer to switch to a pre-rendered version, have the pre-rendered version available encase of an error (i.e. data retrieval), or for users not using JS.

After the most minimal Google-foo, I see echarts-python [1] which has not been updated in 9 years. pyecharts [2] is looking pretty well maintained though.

Years ago I tried my hand at writing a simple bar/line plotting filter for Pandoc that embeds itself into documents via an SVG in a URI [3]. If HN is permitting, you can past links like so [4]. I think writing a stand-alone tool to display the data you are interested in is a good idea for anybody.

[1] https://github.com/yufeiminds/echarts-python

[2] https://github.com/pyecharts/pyecharts/blob/master/README.en...

[3] https://gitlab.com/danbarry16/pandoc-highlight-filter/-/blob...

[4] (removed link as it was too long for the comments section)

bArray | 3 days ago

Related, I just wrote an article and demo about enabling Apache ECharts in React[1] this week.

[1] https://tania.dev/apache-echarts-react/

floppydiskette | 4 days ago

How does it compare to https://www.chartjs.org/ ?

XCSme | 4 days ago

This is super slick. I remember spending hours maybe days trying to make MRTG or rrdtool graphs look like these.

_nickwhite | 4 days ago

We use Echarts on our Bluesky analytics site

https://bluefacts.app/profile/bsky.app

Really great experience, we optimized the imports to reduce bundle size.

For https://www.appbrain.com we also use it and had to optimize it even more.We render it server side and only return the SVG to the client.

Server side rendering is a very powerful feature only very few chart libraries support.

uwemaurer | 4 days ago

I like ECharts a lot and generally, it was incredibly easy to use and customize. I tried a lot of alternatives that weren’t nearly as full featured. It’s really got most anything you’d want included in outta the box.

With that said, I had trouble getting it to stream updates, and was having big performance issues with the dataset I was throwing at it (full telemetry from a racing sim roughly every 12ms). I did not make any attempt to refine the data before delivering it so YMMV. I eventually switched to Plotly and D3 to get better performance, but definitely missed the ease of use.

rubyn00bie | 4 days ago

Sorry if this is a silly question but how does a project become "Apache"? Like is there a core team starting these projects or is there an application process for a project to be under the Apache banner?

smashah | 4 days ago

We have been using Apache ECharts in our products[1] since 2020.

Cannot recommend it enough - absolutely fantastic library, great documentation, zero issues of any impact to us in five years.

My only wish is for the keyboard accessibility ticket[2] to get some love!

[1] https://factorhouse.io

[2] https://github.com/apache/echarts/issues/14706

d_t_w | 4 days ago

We [1] use ECharts to visualize all of our data and it's pretty great to use.

It's also very pluggable, so one can only import the components one needs for each chart. Meaning if you only use the `bar` series type, you can just only import the `bar` component. Same thing not only for other chart types but also stuff like mark areas or zoom controls.

There's also a bigger update in the work which brings e.g. violin plots.

[1] - https://donation.watch/

numdefined | 4 days ago

We moved from plotly to eCharts at OpenObserve, having faced too many small things that we had to fight with plotly. Haven't looked back since the migration.

prabhatsharma | 4 days ago

Do anyone have experience with this in comparison to vega?

geysersam | 4 days ago

Just recently (like 2 months ago) I had the task to evaluate proper OSS replacements for the main charting of a client. So far, they've used a paid solution - but there have been a couple of reasons why the wanted to migrate.

Needless to write that eCharts was the clear winner. Not only is it greatly customizable, fully feature complete - it also had similar performance data as their paid solution. And performance matters as their largest chart has around 300k data (we discussed and could maybe be satisfied with 80-100k as well - but for most OSS charting libs even that would be pretty much impossible to render quickly).

For everyone who is looking for something super easy and quick it might not be the best solution (personally I like Chart.js in this area the most), but if you want a charting solution that out of the box is fast and comes with everything you might ever need then eCharts is for you.

FlorianRappl | 3 days ago

Installing from random npm repos is so sketchy with supply chain attacks.

Is there such a thing as a security audited open source distro kinda like some of the ultra old kernel versions RHEL carried for so long?

There is a market for “here are trailing versions of popular npm, cargo, etc libraries that go through some kind of audit and approval process”.

I’m not sure of the logistics of how it would work, but developers ripping random high churn libraries off the internet is completely crazy from a security perspective. But somehow it’s the norm outside of a small subset of massive tech companies.

Most big orgs just put in some kind of pass through proxy looking for known signatures and call it a day. I want stripped down functionality, real reviews, and just straight up banned libraries if they can’t find anything that passes.

kortilla | 3 days ago

ECharts powers all charts in tablab.app. Might be using 20 different chart types or so

Very happy with it.

Theming works well (saw a question or two about that)

scottgpaulin | 4 days ago

We are actually using Apache ECharts to visualize system performance data in real-time using eBPF.

We had to do a bunch of stuff on top of it to get it working but all in all pretty nice.

You can check it out here in our sandbox:

https://yeet.cx/play

r3tr0 | 4 days ago

The demo page is ridiculously long. I ran out of things to search for. Well done!

https://echarts.apache.org/examples/en/index.html

MR4D | 4 days ago

I’ve had good luck generating charts with gnuplot and serving them as static images—keeps things simple and easy to cache. Haven’t had a need for a full JS charting library yet, but I can see the appeal.

DadBase | 4 days ago

It's developed by Tencent developers. Probably if you would like to get chart of China crimes against humanity you would get an error ;-)

Jolliness7501 | 2 days ago

what's the best way to use a JS visualization library like this while using python for data extraction / manipulation in a notebook format (eg. Jupyter notebook, Google Colab, etc.) ?

gerash | 4 days ago

Oh, good that it can choose between canvas or svg. https://apache.github.io/echarts-handbook/en/best-practices/...

Canvas is the only game in town if you have huge amount of datapoints.

didip | 3 days ago

I've been meaning to practice some data visualization tasks... If anybody knows any cool datasets they'd recommend that aren't your run of the mill kaggle consumer data or whatever. I'm particularly interested in bioinformatics/genetics data but not really sure of where to look (and have almost no background, just personally interested in comp-bio).. If anyone could recommend cool and open esoteric data/possible projects, that would be awesome.

TechDebtDevin | 4 days ago

No opinion on this particular package. But on the naming, "Apache" ECharts...

It's long since time that Apache foundation projects stop using the Apache name. Apache is a license, a foundation, a webserver. Apache supported projects have little to do with that - not the same people, not the same product area. Just some help with money and logistics.

And for those that argue the tie to the Apache org:

They're not CNCF Kubernetes, CNCF Helm, CNCF Jaeger. They're Kubernetes, Helm, Jaeger.

jlaporte | 4 days ago

Anybody have experience using echarts with Vue 2.6? This looks way easier to implement than chart.js, but I’m worried about compatibility with such an old Vue build.

perdomon | 4 days ago

This is great. I was always looking for a well licensed library that is well maintained and ships a coherent featureset. This seems to tick all the boxes.

vkaku | 4 days ago

I wish it handled time zones properly, but everything else just works. The number of charts it supports is crazy. The second best was Apexcharts.

https://echarts.apache.org/examples/en/index.html

luffy-taro | 3 days ago

I've been using apache echarts for a while. It is excellent. As you dig deep, some of the examples and libraries are in Chinese, which can be challenging.

The only real drawback that I've discovered is that it uses canvas to generate the charts. So, when you UI changes to dark mode, you need to reload your charts to update the color scheme ... which in the grand scheme of things is really minor.

techscruggs | 4 days ago

The `echarts4r` [1] R package lets you create ECharts charts directly in R and render them in graphical device, Shiny apps, Rmarkdown or Quarto documents.

[1] https://echarts4r.john-coene.com/

egecant | 3 days ago

The AWS Quicksight BI tool uses it underneath.

mt_ | 4 days ago

Over the last 7 years I've built 3 major products that needed charts. Every time I tested most of (at that time) popular solutions. All 3 times eCharts was by far the best option, across all criteria. Incredible library!

curl-up | 3 days ago

Used this for some knowledge graph visualization work. Really clean UI and some nice features out of box for interactivity

amanj41 | 4 days ago

Reminds me of https://d3js.org/

the_arun | 4 days ago

Pleasing visual which had my browser's FPS went low, especially at the liquid fill extension part.

xiaoyu2006 | 4 days ago

Happy eChart user. Added a tiny Reactjs wrapper on the top and ditched all D3 libraries. Never look back. Easy to inline and embed into slatejs based documents. Usable on mobile and responsive enough for my use cases.

adeptima | 4 days ago
[deleted]
| 4 days ago

No Debian package. Requested since 2022: <https://bugs.debian.org/1014408>

teddyh | 3 days ago

Wow what a blast from the past. I used this library many years back when I think it was called Baidu E-Charts. Was a great library back then too. I'm amazed how good its gotten now.

remoroid | 3 days ago

There is a super interesting port of ECharts to Rust: https://github.com/yuankunzhang/charming

dev_l1x_be | 3 days ago

The fact that it seamlessly switches between <CANVAS> and <SVG> is marvelous!

NoSalt | 2 days ago

longterm google charts user. This has attraction. Good eye candy feel, responsive.

There are some specific things google charts do, like mark out kashmir and other disputed territories differently depending on your origin IP/AS so you don't fall foul of Indian law.

There are some things google charts don't do, like re-center maps off the meridien they think is best. Scaling geo charts for the pacrim island nations is also very hard. No good choices there perhaps.

Is there a migration guide?

ggm | 4 days ago

Never seen so much positivity related to a tool since SQLite

lysecret | 4 days ago

I've probably used Apache e-charts in some way or another in every project I've been on in the last decade. One of those packages that just works out of the box.

King-Aaron | 4 days ago

I was particularly impressed with how performant the demo was as it was playing. I was fully expecting my Macbook-fan to start whirring as it usually does with most javascript-heavy pages.

keithxm23 | 4 days ago

How did I not know about Apache ECharts?!? Thank you HN. This is awesome.

mattsimpson | 2 days ago

ECharts was handy for getting a quick chart going in a typing practice app I wrote. It was easy to get a chart showing WPM over time on a word list.

henning | 4 days ago

The "Examples" page doesn't work for me. I don't get further than "Line Charts". (Firefox)

AndyPa32 | 3 days ago

Does anyone know of a way to print echarts to a PDF, without having a headless Chromium instance involved? Been fighting this at work.

rogerrogerr | 4 days ago

Echarts can correctly animate data thats streaming via a moving window from right to left. Some other libs have issues in this case.

je42 | 4 days ago

Are ECharts safe for untrusted user input?

jjmarr | 4 days ago

The demo is seriously impressive! I haven’t heard of this library before, will definitely consider using it

elAhmo | 4 days ago

Looks like it could work nicely with HTMX.

jollyllama | 4 days ago

after trying many charting, we settled on Apache Echart as well. its really flexible for lot of use-cases and customizable. if this doesnt work for you, the only option left is D3. Btw, we have not looked at many paid chart options like hicharts or other.

jaysen_apache | 4 days ago

I love echarts, I've used it at almost every company I've worked at to this day since I found it.

forthwall | 4 days ago

Nivo seems really nice. I recall that fey.com used it for their charts.

johntopia | 3 days ago

I'd really like to know how they did all the transition effects. They were really cool.

wackget | 4 days ago

I never heard of them, hmm. Apache doing great work here.

Brosper | 4 days ago

Times sure do change - nice acquisition- hope it stays open

ingen0s | 4 days ago

How is the Apache project still alive? Who funds them?

greenavocado | 4 days ago

What a beautiful presentation!

imcritic | 3 days ago

wow!!

Though it did not seem to have trading related charts like candlesticks and others

pknerd | 3 days ago

This is so cool!

Jasonwuyc | 4 days ago
[deleted]
| 4 days ago

what happened to sankey? no sankey graph??

bzmrgonz | 4 days ago

[dead]

tempdisposal | 4 days ago

[flagged]

faustocarva | 4 days ago

[flagged]

resolutefunctor | 4 days ago

Is it Vibe Coding friendly?

givemeethekeys | 4 days ago