Apache ECharts 6

(echarts.apache.org)

272 points | by makepanic 3 days ago ago

36 comments

  • homebrewer 3 days ago ago

    Props to them for keeping backwards compatibility. I always dread seeing these major releases, especially after being burned several times by the tire fire of react-router. Migrating a rather large project from 5.6 to 6.0 (10 chart types, around 1k charts in total) took maybe 15 minutes of work. IIRC the only breaking change was them moving the legend to the bottom, which was easy to revert by importing the old theme.

    And all that for free. The project was using a commercial library until about a year ago; no regrets since moving to echarts.

    • mitemte 3 days ago ago

      react-router is such a disaster. It’s got to be one of the most irritating but ubiquitous packages. I’m going to migrate to Tanstack Router on a project that uses react-router v6 currently, rather than bother with the v7 migration.

      • drewbitt 3 days ago ago

        There is no real v7 migration though. There hasn't been anything breaking in react router for several years now.

    • andrewmcwatters 3 days ago ago

      It hurts my marketability that I no longer put up with the masochism of the React ecosystem, but moving to web components was such a relief. I don't tolerate these projects that are constantly changing for no good reason.

      • mardifoufs 2 days ago ago

        I'm not sure I follow. Are you saying that you don't use dependencies when using web components? Because that's usually the issue, not react itself. React doesn't really ever break backward compatibility. But yeah, if you don't use any deps, 3rd party upgrades/migrations aren't an issue.

        • andrewmcwatters 2 days ago ago

          React itself is problematic enough considering its design is incoherent (now server-side rendered functional stateless programming with side effects,) but the other question is "What React?"

          React isn't 12 years old, React is 5 different libraries, with paradigms that have lived for about roughly 2 years on average.

          I don't know about you, but my projects are more mature than 2 years old. I don't have the patience for that kind of bullshit.

          And I've done this stuff long enough to know if the kids decide this is the new fashion, the old stuff might incidentally still work, but all of the library's attention is going to be on what the maintainers are working on.

          So React is now a server-side rendered, functional, stateless component library with side effects.

          And that sounds like the dumbest thing I've ever read in web development.

          • mardifoufs 2 days ago ago

            But you can still use class components. They will never be deprecated afaik. Yes they aren't the most recommended route anymore, but that's fine as long as it doesn't break.

            Fwiw, I agree that the SSR route that react is taking is puzzling and makes little sense for most react users. But that's the nice part about react, you don't really have to worry about it. For most other frameworks, you absolutely need to be cautious of where the project lead might want to take the project next, as it almost always means future major breaking changes (vuejs 3.0, svelte 5, etc)

            • andrewmcwatters 2 days ago ago

              "But you can still-" Yeah, I'm not interested in that mentality. No professional should put up with it.

        • prinny_ 2 days ago ago

          React itself is ok on that regard . But popular packages that are often installed in React projects very often publish breaking changes or deprecate stuff that used to be “the norm” until just a major version ago. It’s sad because the most common solution is to pin the dependencies.

          • mardifoufs 2 days ago ago

            Yes I agree but wouldn't that be the same if you used WC? The only difference is that web components has a much smaller ecosystem, but there's nothing that makes webcomponents any less prone to dependency hell, or to major churn, except that react has a much wider ecosystem.

  • dev_l1x_be 3 days ago ago

    Echarts is the best charting library when you need a full fledge solution. It is worth to know that you can reduce the bundle size with this:

    https://echarts.apache.org/en/builder.html

  • rorylaitila 3 days ago ago

    I feel I've tried them all. Echarts is the best overall charting library. Fast, complete, easy to start, advanced options, looks great by default, good examples, server and client rendering, SVG and canvas.

    My only complaint is the chart-data data structures. Each chart type takes a different structure and axis data structure. They bolted on a data table feature (columns and rows), but it's not as documented and last I tried, incomplete.

  • porridgeraisin 3 days ago ago

    Recently tried a bunch of frontend charging libraries.

    Disclaimer: I only tried line charts for time series X axis and bar charts for categorical X axis. No other charts. I had filters, group by and sort by options in control panel. Data was fetched everytime from database when control panel was modified, so no client side number crunching.

    My requirements were:

    Control panel at top (which I'll manage). Then a grid of charts below with synced cursors and zooms (toggleable).

    Basically, grafana, but they're not necessarily time series graphs.

    I found uPlot(which is iirc what grafana uses) and eCharts to be the handsdown winners. Within those two, I preferred eCharts as first of all uplot didn't have any docs, LLMs didn't really perform well, and also vue-eplot wrapper didn't work.

    Secondly, eCharts had nice animations, which uPlot does not support and I understand why, but I just wanted it for this project. It's really neat, when you add a group by in your control panel the charts nicely animate and the legend shows up etc

    The others just did not impress, highcharts, chart.js, c3.js, ag-grid.

    But maybe they're better fit for another usecase.

    Vue-echarts is such a nice wrapper too.

      // your refs from control panel inputs
      // chartOption = computed(() => make from inputs)
      // <v-chart :chartOption />
    
    Performance wise, it didn't lag upto few month date ranges for daily data that arises out of user interaction. So not super dense like logs or telemetry measurements, but not that sparse either. I didn't really benchmark it with proper stress tests beyond checking if it worked for the usecase at hand.

    It is also ridiculously reliable. When you have empty/missing data there's no annoying try-catch or guards you have to do when rendering, it automatically shows an empty graph with the size you specified. The title and other decorations still remain.

    It also works well inside flex/grid layouts. No nonsense with CSS needed.

    • kinow 2 days ago ago

      Thanks for the summary and good to know it integrates well with Vue.js!

  • ggregoire 3 days ago ago

    I've toyed with various JS charting libraries over the last 15 years and I always come back to Echarts. Other libraries always miss options you eventually need if you are trying to do anything non trivial (e.g. the last one I tried didn't support multiple Y axises). It's feature complete while not having the complexity of coding a chart from scratch with D3. Works well with React too.

  • elric 3 days ago ago

    Their new chord chart is easily the clearest chord chart I've seen. Tooltips with directional arrows, clear gradients.

  • 3 days ago ago
    [deleted]
  • RyanHamilton 3 days ago ago

    I evaluated a lot of chart frameworks 3 years ago before choosing echarts. We use it in our real time database visualization to to display charts at 10+ frames per second: https://www.timestored.com/pulse/ it's proved to be an excellent choice. There's been only one essential feature that I couldn't achieve and rechecking the github issue I see they merged a fix so I'm going to have to upgrade. Great work. Thanks.

  • 3 days ago ago
    [deleted]
  • kakadu 3 days ago ago

    While I like echarts I have found it somewhat challenging to extend their functionality.

    I wanted a Gantt chart and while I did achieve what I wanted it wasn't without having to delve into the their source and putting log statements everywhere.

    I happen to be using ant design and I've had the same issues there.

    Its a bit all over the place and the translations are not great, but i will stick with it.

    • thoughtpalette 3 days ago ago

      Also using Ant Design with eCharts. Having to funnel the designers to not use gradients for all the charts has been fun. While eCharts supports _some_ gradients, it's been a PITA for certain chart types.

      I also made the mistake of using Ant Design Pro Forms since I wanted to use the StepForm Wizard component. All of the tsdocs are in Chinese and it's barely documented for more than their example use cases :'}

    • infecto 3 days ago ago

      Some parts of the api are a bit confusing especially with more recent version upgrades but I still have found it to be the most powerful open source library that’s not D3.

  • kylecordes 3 days ago ago

    I'm always thrilled to see eCharts mentioned anywhere. It is a highly featureful, complete solution for making sophisticated data-intense charts. Various commercial alternatives pale in comparison.

  • derkades 2 days ago ago

    Seems like a good release! Looking forward to upgrade my project. The LLM-speak was hard to read, though.

  • tnolet 3 days ago ago

    Anyone ever tried switching from Highcharts to ECharts?

    • gerenuk 3 days ago ago

      We did for ContentStudio.io, in fact it’s my go to library for every project that involves visualization.

      No regrets and we are very happy with it.

      In another project, we started with nivo.rocks and eventually migrated everything to echarts. (Usermaven)

      • Onavo 3 days ago ago

        Are there any good react wrappers for it?

  • nirav72 3 days ago ago

    This is neat. Anyone using these for live charts with real time data?

    • blensor 3 days ago ago

      This was such a random post on HN, because I didn't even know about echarts about 2 weeks ago. I had been using amcharts for the workout analysis in XRWorkout for several years but wanted to switch to a more open library.

      Converting the old amcharts code to echarts worked almost automatically with Gemini 2.5 Pro and since a bit over a week all stats in the game ( via webview ) and in the web on the user portal are now using echarts.

      I'm even using it in a Three.js visualizer for the recorded workout data ( which is still highly experimental so don't judge the visuals please ): https://portal.vrworkout.at/static/workout_visualizer/index....

  • billfruit 3 days ago ago

    Can it do interactive 3d plots?

  • hbarka 3 days ago ago

    Where’s Sankey charts?

  • antman 3 days ago ago

    Examples not clickable and failed to find the bar range example documentation. Hope it has a horizontal option!