Visualization

Top 23 Visualization Open-Source Projects

  • d3

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

  • Project mention: A visual guide to Vision Transformer – A scroll story | news.ycombinator.com | 2024-04-16

    Yes this was done with a combination of GSAP Scrolltrigger https://gsap.com/docs/v3/Plugins/ScrollTrigger/ and https://d3js.org/

  • echarts

    Apache ECharts is a powerful, interactive charting and data visualization library for browser

  • Project mention: A web crawler program for crawling Echarts official website examples implemented by Puppeter | dev.to | 2024-04-12

    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`); } })();

  • 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.

    SurveyJS logo
  • algorithm-visualizer

    :fireworks:Interactive Online Platform that Visualizes Algorithms from Code

  • Metabase

    The simplest, fastest way to get business intelligence and analytics to everyone in your company :yum:

  • Project mention: HackTheBox - Writeup Analytics | dev.to | 2024-03-30

    Remote Code Execution via H2

  • jsoncrack.com

    ✨ Innovative and open-source visualization application that transforms various data formats, such as JSON, YAML, XML, CSV and more, into interactive graphs.

  • Project mention: JSONCrack Codebase Analysis - Part 5 - Toolbar and Bottom bar | dev.to | 2024-01-09

    They are used in Editor component. Part 4 explains about Editor component.

  • Redash

    Make Your Company Data Driven. Connect to any data source, easily visualize, dashboard and share your data.

  • Project mention: Redash: Connect to data source, easily visualize, dashboard and share your data | news.ycombinator.com | 2024-03-20
  • bokeh

    Interactive Data Visualization in the browser, from Python

  • Project mention: Mastering Matplotlib: A Step-by-Step Tutorial for Beginners | dev.to | 2023-12-25

    Bokeh - Interactive Web Plotting for Python.

  • 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.

    InfluxDB logo
  • visx

    🐯 visx | visualization components

  • Project mention: React Component Libraries | dev.to | 2024-03-13

    Official Website: https://airbnb.io/visx/

  • excelize

    Go language library for reading and writing Microsoft Excel™ (XLAM / XLSM / XLSX / XLTM / XLTX) spreadsheets

  • 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-01

    Then 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.

  • plotly.js

    Open-source JavaScript charting library behind Plotly and Dash

  • Project mention: Build Your Own Uptime Monitor with MeteorJS + Fetch + Plotly.js ☄️🔭 | dev.to | 2024-03-08

    Plotly as our chart renderer

  • Thingsboard

    Open-source IoT Platform - Device management, data collection, processing and visualization.

  • Project mention: ThingsBoard Microservices Installation Update Problem | /r/ThingsBoard | 2023-11-29

    Until 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:

  • plotly

    The interactive graphing library for Python :sparkles: This project now includes Plotly Express!

  • Project mention: Yes, Python and Matplotlib can make pretty charts | news.ycombinator.com | 2024-04-16
  • motion-canvas

    Visualize Your Ideas With Code

  • Project mention: Show HN: Revideo – Create Videos with Code | news.ycombinator.com | 2024-04-15

    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

  • apexcharts.js

    📊 Interactive JavaScript Charts built on SVG

  • Project mention: Show HN: A JavaScript library for data visualization in both SVG and Canvas | news.ycombinator.com | 2024-04-11
  • sampler

    Tool for shell commands execution, visualization and alerting. Configured with a simple YAML file.

  • Project mention: Bus ETA | /r/commandline | 2023-11-16

    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 !!

  • G2

    📊 The concise and progressive visualization grammar.

  • vega

    A visualization grammar.

  • Project mention: Show HN: Minard – Generate beautiful charts with natural language | news.ycombinator.com | 2024-04-18

    Hi 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.

  • G6

    ♾ A Graph Visualization Framework in JavaScript.

  • Open3D

    Open3D: A Modern Library for 3D Data Processing

  • Project mention: Does anyone else agree that the links to the latest development version of Open3D don't work? | /r/cscareerquestions | 2023-07-10

    I 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

  • kepler.gl

    Kepler.gl is a powerful open source geospatial analysis tool for large-scale data sets.

  • 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-02

    This might help: https://kepler.gl/

  • pygwalker

    PyGWalker: Turn your pandas dataframe into an interactive UI for visual analysis

  • Project mention: Show HN: Use an "eraser" to clean data on flight without breaking your workflow | news.ycombinator.com | 2024-03-15
  • react-diagrams

    a super simple, no-nonsense diagramming library written in react that just works

  • Project mention: react-diagrams VS rete - a user suggested alternative | libhunt.com/r/react-diagrams | 2023-06-09
  • 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.

    WorkOS logo
NOTE: The open source projects on this list are ordered by number of github stars. The number of mentions indicates repo mentiontions in the last 12 Months or since we started tracking (Dec 2020).

Visualization related posts

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
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.
workos.com