With SurveyJS form UI libraries, you can build and style forms in a fully-integrated drag & drop form builder, render them in your JS app, and store form submission data in any backend, inc. PHP, ASP.NET Core, and Node.js. Learn more →
Top 23 Visualization Open-Source Projects
-
echarts
Apache ECharts is a powerful, interactive charting and data visualization library for browser
-
SurveyJS
Open-Source JSON Form Builder to Create Dynamic Forms Right in Your App. With SurveyJS form UI libraries, you can build and style forms in a fully-integrated drag & drop form builder, render them in your JS app, and store form submission data in any backend, inc. PHP, ASP.NET Core, and Node.js.
-
Metabase
The simplest, fastest way to get business intelligence and analytics to everyone in your company :yum:
-
jsoncrack.com
✨ Innovative and open-source visualization application that transforms various data formats, such as JSON, YAML, XML, CSV and more, into interactive graphs.
-
Redash
Make Your Company Data Driven. Connect to any data source, easily visualize, dashboard and share your data.
-
InfluxDB
Power Real-Time Data Analytics at Scale. Get real-time insights from all types of time series data with InfluxDB. Ingest, query, and analyze billions of data points in real-time with unbounded cardinality.
-
excelize
Go language library for reading and writing Microsoft Excel™ (XLAM / XLSM / XLSX / XLTM / XLTX) spreadsheets
-
Thingsboard
Open-source IoT Platform - Device management, data collection, processing and visualization.
-
plotly
The interactive graphing library for Python :sparkles: This project now includes Plotly Express!
-
sampler
Tool for shell commands execution, visualization and alerting. Configured with a simple YAML file.
-
vaex
Out-of-Core hybrid Apache Arrow/NumPy DataFrame for Python, ML, visualization and exploration of big tabular data at a billion rows per second 🚀
-
WorkOS
The modern identity platform for B2B SaaS. The APIs are flexible and easy-to-use, supporting authentication, user identity, and complex enterprise features like SSO and SCIM provisioning.
Project mention: A visual guide to Vision Transformer – A scroll story | news.ycombinator.com | 2024-04-16Yes this was done with a combination of GSAP Scrolltrigger https://gsap.com/docs/v3/Plugins/ScrollTrigger/ and https://d3js.org/
Project mention: A web crawler program for crawling Echarts official website examples implemented by Puppeter | dev.to | 2024-04-12import 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`); } })();
Remote Code Execution via H2
Project mention: JSONCrack Codebase Analysis - Part 5 - Toolbar and Bottom bar | dev.to | 2024-01-09They are used in Editor component. Part 4 explains about Editor component.
Project mention: Redash: Connect to data source, easily visualize, dashboard and share your data | news.ycombinator.com | 2024-03-20
Bokeh - Interactive Web Plotting for Python.
Official Website: https://airbnb.io/visx/
Project mention: Recommend a powerful excel processing library, @zurmokeeper/exceljs, which supports encryption and decryption of xlsx files and flexible setting of multiple table headers when exporting, etc. | /r/node | 2023-07-01Then I found out that WPS only supports ecma376 standard encrytion for xlsx files. Then I referred to the official documentation and libraries in other languages, such as msoffcrypto-tool written in python. msoffcrypto-tool) and go's excelize. Since I don't know much about encryption and decryption, the process of implementation is also a bit of a twist.
Project mention: Build Your Own Uptime Monitor with MeteorJS + Fetch + Plotly.js ☄️🔭 | dev.to | 2024-03-08Plotly as our chart renderer
Project mention: ThingsBoard Microservices Installation Update Problem | /r/ThingsBoard | 2023-11-29Until recently I was still using TB v3.2.1, now I've set about updating the installation to the latest version. I proceeded as described at https://github.com/thingsboard/thingsboard/tree/master/docker:
Project mention: Yes, Python and Matplotlib can make pretty charts | news.ycombinator.com | 2024-04-16
Hey HN! We’re building Revideo (https://github.com/redotvideo/revideo), an open source toolkit that lets you programmatically create and export videos with the animation library Motion Canvas (https://github.com/motion-canvas/motion-canvas). This is useful whenever you want to build apps that automate certain video tasks, which is increasingly possible using AI tools - for instance, one of our first users is building an app that turns code documentation into video tutorials.
Revideo extends Motion Canvas with features that are essential for creating video, such as the ability to export audio tracks, a nodejs package for headless, parameterized & much faster rendering, and audio components that make audio editing and syncing easier. While Motion Canvas aims to be a standalone editor [1], we want to build a set of libraries that lets developers integrate video editing functionality into their apps. Our goal is to provide an open-source alternative to Remotion (https://github.com/remotion-dev/remotion).
At the start of this year, we explored a bunch of product ideas in the space of AI-based video creation. For example, we’ve built apps that automatically create educational short videos and have experimented with automatically A/B testing and personalizing video ads.
While building these products, we were frustrated with the video editing frameworks we used: Moviepy (https://github.com/Zulko/moviepy), which we relied on initially, doesn’t offer a way to preview your videos, so we’d often have to wait minutes for a video to render to test our code changes. Remotion (https://github.com/remotion-dev/remotion), which we switched to later, is really good, but we didn’t want to rely on it as it is not open source (source-available only). That’s why we decided to build Revideo.
We’d already been following Motion Canvas for some time and really liked using it, so we thought that extending it would get us to something useful much faster than building an animation library from scratch. Initially, we tried to build our features as Motion Canvas plugins, but this did not provide enough flexibility to achieve the desired functionality. Additionally, video-specific features (such as audio support) were generally considered out of scope by the Motion Canvas maintainers, which is why we ultimately ended up creating a fork. We’re unsure if this is the right way to go in the long term, and would prefer to find a way to build Revideo without diverging from Motion Canvas too much - if you have suggestions on how to solve this, we’d love your input.
Compared to Remotion, which builds on top of React, Motion Canvas uses the HTML Canvas API and makes you define animation flows with generator functions. Its API is more “procedural”, as it makes you define the things that happen in your animation as a sequence of yields, whereas Remotion gives you a frame number and lets you declare how your video should look like at that frame.
Our current focus is improving the open source project. In the long term, we want to make money by building a rendering service for developers building apps with Revideo. Such a service would offer a pretty similar deployment experience to Vercel, but instead of web apps, we let developers deploy Revideo projects and expose a rendering endpoint for them. Letting us manage the infrastructure will allow us to offer much faster rendering, as we can massively parallelize rendering jobs on our servers (e.g. spinning up 100 headless browsers that render 100 frames each to render a video with 10,000 frames).
We’d love to hear your feedback and suggestions! You can find our repo at https://github.com/redotvideo/revideo, We’ve also released an example video editing app at https://github.com/redotvideo/revideo-saas-template. Thank you!
[1] “Motion Canvas is not a normal npm package. It's a standalone tool that happens to be distributed via npm.” - https://github.com/orgs/motion-canvas/discussions/1015
Project mention: Show HN: A JavaScript library for data visualization in both SVG and Canvas | news.ycombinator.com | 2024-04-11
Hi ! I'm currently in the process of building myself dashboards using sampler and / or WTF. I want a section with the live ETA of some buses stop from STM. I know they have an SMS option so that may be a lead but i've figured there might be a better way using iBus or something. Thanks in advance !!
Project mention: Show HN: Minard – Generate beautiful charts with natural language | news.ycombinator.com | 2024-04-18Hi HN – Excited to share a beta for Minard, a new data visualization toolkit we've been working on that lets you generate publication-quality charts with simple natural language (throw away your matplotlib docs and rejoice!).
Upload or import CSVs, Excel, and JSON, give it a spin, and please let us know what you think! (Long format data works best for now)
For those curious, the stack is a simple Django app with HTMX/Alpine and all of the charts are specified and rendered as Vega (https://vega.github.io/vega/). Lots of LLM function calling under the hood as well.
Project mention: Does anyone else agree that the links to the latest development version of Open3D don't work? | /r/cscareerquestions | 2023-07-10I was going to file a bug about another issue, but I have to download the development version. This is why I want this solved quickly. None of the links seem to work: https://github.com/isl-org/Open3D/issues/6259
Project mention: Noob here: Please tell me how can I integrate this type of map in my site? any js library? | /r/developersIndia | 2023-07-02This might help: https://kepler.gl/
Project mention: Show HN: Use an "eraser" to clean data on flight without breaking your workflow | news.ycombinator.com | 2024-03-15
Project mention: react-diagrams VS rete - a user suggested alternative | libhunt.com/r/react-diagrams | 2023-06-09
Visualization related posts
- Digitized Continuous Magnetic Recordings for the 1859 Carrington Event
- Show HN: Minard – Generate beautiful charts with natural language
- A visual guide to Vision Transformer – A scroll story
- Yes, Python and Matplotlib can make pretty charts
- Graph Data Fits in Memory
- Vega-Lite – A Grammar of Interactive Graphics
- Oh My Git: An open source game about learning Git
-
A note from our sponsor - SurveyJS
surveyjs.io | 26 Apr 2024
Index
What are some of the best open-source Visualization projects? This list will help you:
Project | Stars | |
---|---|---|
1 | d3 | 107,634 |
2 | echarts | 58,944 |
3 | algorithm-visualizer | 46,118 |
4 | Metabase | 36,510 |
5 | jsoncrack.com | 28,426 |
6 | Redash | 24,948 |
7 | bokeh | 18,839 |
8 | visx | 18,712 |
9 | excelize | 17,279 |
10 | plotly.js | 16,523 |
11 | Thingsboard | 15,595 |
12 | plotly | 15,247 |
13 | motion-canvas | 15,000 |
14 | apexcharts.js | 13,831 |
15 | sampler | 12,220 |
16 | G2 | 11,955 |
17 | vega | 10,847 |
18 | G6 | 10,703 |
19 | Open3D | 10,485 |
20 | kepler.gl | 9,997 |
21 | pygwalker | 9,759 |
22 | react-diagrams | 8,335 |
23 | vaex | 8,173 |
Sponsored