echarts-for-react VS echarts

Compare echarts-for-react vs echarts and see what are their differences.

echarts-for-react

⛳️ Apache ECharts components for React wrapper. 一个简单的 Apache echarts 的 React 封装。 (by hustcc)

echarts

Apache ECharts is a powerful, interactive charting and data visualization library for browser (by apache)
Our great sponsors
  • SurveyJS - Open-Source JSON Form Builder to Create Dynamic Forms Right in Your App
  • InfluxDB - Power Real-Time Data Analytics at Scale
  • WorkOS - The modern identity platform for B2B SaaS
echarts-for-react echarts
6 17
4,353 58,883
- 0.9%
3.1 8.7
2 months ago 1 day ago
TypeScript TypeScript
MIT License Apache License 2.0
The number of mentions indicates the total number of mentions that we've tracked plus the number of user suggested alternatives.
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.

echarts-for-react

Posts with mentions or reviews of echarts-for-react. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2023-07-15.

echarts

Posts with mentions or reviews of echarts. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2023-09-22.
  • A web crawler program for crawling Echarts official website examples implemented by Puppeter
    1 project | dev.to | 12 Apr 2024
    import puppeteer from "puppeteer"; import fs from "node:fs"; import { storiesTpl, storiesArgs, generOptions, generOptionsWithFn, } from "./template.mjs"; const ECHARTS_BASE_URL = "https://echarts.apache.org/examples/en/index.html"; function capitalizeFirstLetter(str) { if (!str || str.length === 0) { return ""; } str = str.toLowerCase(); return str.charAt(0).toUpperCase() + str.slice(1); } (async function () { const browser = await puppeteer.launch(); const page = await browser.newPage(); // Navigate the page to a URL await page.goto(ECHARTS_BASE_URL); // Set screen size await page.setViewport({ width: 1080, height: 1024 }); // Type into search box // const examples = await page.type([".example-list-panel"]); const searchResultSelector = ".example-list-panel > div"; const results = await page.$$(searchResultSelector); for (const element of results) { // gener namespace const ele = await element.$(".chart-type-head"); const title = await ele.evaluate((el) => el.textContent); let namespace = title.split(" ").filter(Boolean); namespace = namespace.slice(0, namespace.length - 1); namespace = namespace .map((item) => item.replace("\n", "").replace("/", "")) .filter(Boolean) .join(""); console.log(`${namespace} start`); const instances = await element.$$(".row .example-list-item"); const components = []; for (const instance of instances) { // title const titleElement = await instance.$(".example-title"); const subTitle = await titleElement.evaluate((el) => el.textContent); const titles = subTitle .split(" ") .filter(Boolean) .map((item) => item .replace(/\+/g, "") .replace(/\(/g, "") .replace(/\)/g, "") .replace(/-/g, "") ); const title = titles.map((item) => capitalizeFirstLetter(item)).join(""); const link = await instance.$(".example-link"); const newPagePromise = new Promise((resolve) => { browser.on("targetcreated", async (target) => { if (target.type() === "page") { const targetPage = await target.page(); const url = await targetPage.url(); if (url.includes("editor")) { resolve(targetPage); } } }); }); await link.click(); const newPage = await newPagePromise; await newPage.setViewport({ width: 40000, height: 20000 }); await newPage.waitForSelector(".ace_text-layer"); await new Promise((resolve) => { setTimeout(() => { resolve(); }, 3000); }); let content = await newPage.evaluate( () => document.querySelector(".ace_text-layer").innerText ); content = content .replace(/\[\]/g, "[] as any") .replace(//g, "") .replace(/var/g, "let"); let options; if (content.includes("myChart")) { options = generOptionsWithFn({ options: content }); } else { options = generOptions({ options: content }); } components.push({ options, title }); await newPage.close(); } const args = components .filter(({ options }) => { if (options.includes("$")) return false; return true; }) .map(({ options, title }) => storiesArgs({ options: options, name: title }) ) .join("\r\n"); const scripts = storiesTpl({ namespace: `Charts/${namespace}`, components: args, }); fs.writeFileSync(`./bots/assests/${namespace}.stories.ts`, scripts); console.log(`${namespace} end`); } })();
  • Show HN: Paisa – Open-Source Personal Finance Manager
    18 projects | news.ycombinator.com | 22 Sep 2023
    I want to know where my money goes. I like to look at stacked-area (or column) charts of the categories of spending. To make this work I have some software I made ~20 years ago that does double-entry book-keeping. At the end of the month, I import statements from financial service providers (eg: Wells Fargo, Chase, PayPal, Stripe, etc). Lots of stuff is repeat purchases (eg: Shell Gas) and my software automatically categorises. Some transactions I have to categorise manually. Each category / vendor becomes an expense-account and my banks and CCs exist as assets and liabilities.

    Once the import and reconciliation is done I pull up a my column chart that shows where the money went -- and can compare over time -- see a full year of movement. I've been through various charting libraries with it and most recently moved to ECharts[0] -- so I'm planning to expand with Treemap and Sankey style visuals.

    The import process, which I do monthly takes maybe an hour. I'm importing from like 5 bank accounts, 3 payment processors, 4 CC providers. The part that takes the longest is signing into their slow sites, navigating past pop-up/interstitial, getting to their download page and waiting for it to download. Loads of these sites (WF, Chase) have been "modernised" and have some real bullshit UI/UX going on -- lags, no keyboard, elements jump around, forms can't remember state, ctrl+click won't open in a new page cause that damned link isn't actually a link but some nested monster of DIVs with 19 event listeners on each one -- and somehow still all wrong.

    I think the most-best feature would be to have some tool automatically get all my transactions from all these providers into one common format. Gimmee some JSON with like 10 commonly-named fields for the normal stuff and then 52 other BS fields that each provider likes to add (see a PayPal CSV for example). Does that exist and I just don't know?

    [0] https://echarts.apache.org/

  • Personal Sträva Activity Statistics
    3 projects | /r/Strava | 13 Jun 2023
    Coded mainly in Perl and Gnuplot, recently extended by Python Pandas and JavaScript Tabulator and ECharts
  • Build complex SPAs quickly with vue-element-admin
    6 projects | dev.to | 30 Mar 2023
    Dashboards have a lot of charts for different forms and data. This is another common requirement. This template recommends Apache ECharts, a powerful, easy-to-use, and flexible JavaScript visualization library.
  • Using Apache ECharts in React Native - wrn-echarts
    4 projects | /r/reactnative | 1 Feb 2023
    We have developed an open source graphics library for react native APP, which is based on Apache ECharts and uses RNSVG or RNSkia for rendering in a way that is almost identical to using it in the web, and can satisfy most graphics situations. The project source code is available at https://github.com/wuba/wrn-echarts .
  • Best practice for UI design in scientific app
    4 projects | /r/sveltejs | 27 Nov 2022
    apache-echarts for charting system (it has 3d chart anyway)
  • [OC] The crude birth rate in European Union from 1960 to 2020
    1 project | /r/dataisbeautiful | 12 Oct 2022
  • Use types (which import other types that reference the DOM) inside a web-worker!
    1 project | /r/Angular2 | 21 Jul 2022
    How are you importing the definition? Assuming you are using "apache/echarts" and not some other lib named "echarts", you should be able to import DatasetModel directly and let tree shaking trim out what you're not using.
  • Pulling and visualizing data from a database client side
    4 projects | /r/csharp | 20 May 2022
    ECharts -- open source js lib for enterprise-grade charts
  • [OC] U.S. Inflation Reach High in 20 Years
    1 project | /r/dataisbeautiful | 12 Apr 2022

What are some alternatives?

When comparing echarts-for-react and echarts you can also consider the following projects:

DHTMLX Gantt - GPL version of Javascript Gantt Chart

Chart.js - Simple HTML5 Charts using the <canvas> tag

visx - 🐯 visx | visualization components

d3 - Bring data to life with SVG, Canvas and HTML. :bar_chart::chart_with_upwards_trend::tada:

recharts - Redefined chart library built with React and D3

Highcharts JS - Highcharts JS, the JavaScript charting framework

apexcharts.js - 📊 Interactive JavaScript Charts built on SVG

vega - A visualization grammar.

amcharts4 - The most advanced amCharts charting library for JavaScript and TypeScript apps.

Frappe Gantt - Open Source Javascript Gantt

react-material-admin - ☄️React Material Admin is a React template built with Material-UI