# Awesome Dataviz
[![Awesome](https://cdn.rawgit.com/sindresorhus/awesome/d7305f38d29fed78fa85652e3a63e154dd8e8829/media/badge.svg)](https://github.com/sindresorhus/awesome) ![Test](https://github.com/javierluraschi/awesome-dataviz/actions/workflows/main.yaml/badge.svg)


A curated list of awesome **open-source** data visualizations frameworks, libraries and software. Inspired by [awesome-python](https://github.com/vinta/awesome-python) and originally created by [fasouto](https://github.com/fasouto).


## Contents
- [Awesome dataviz](#awesome-dataviz)
	- [JavaScript tools](#javascript-tools)
		- [Charting libraries](#charting-libraries)
		- [Charting libraries for graphs](#charting-libraries-for-graphs)
		- [Maps](#maps)
		- [d3](#d3)
		- [React](#react)
		- [Misc](#misc)
	- [Android tools](#android-tools)
	- [C++ tools](#c-tools)
	- [Golang tools](#golang-tools)
	- [iOS tools](#ios-tools)
	- [Python tools](#python-tools)
	- [R tools](#r-tools)
	- [Ruby tools](#ruby-tools)
	- [Markup-based tools](#markup-based-tools)
	- [Other tools](#other-tools)
- [Resources](#resources)
	- [Books](#books)
	- [Catalogs](#catalogs)
	- [Podcasts](#podcasts)
	- [Twitter accounts](#twitter-accounts)
 	- [Websites](#websites)
- [Contributing](#contributing)
- [License](#license)

## JavaScript tools

### Charting libraries
- [ApexCharts](https://apexcharts.com/) - Modern & Interactive SVG Charts.
- [Chart.js](https://www.chartjs.org/) - Charts with the canvas tag.
- [Chartist.js](https://gionkunz.github.io/chartist-js/) - Responsive charts with great browser compatibility.
- [dc.js](https://github.com/dc-js/dc.js) is an multi-Dimensional charting built to work natively with crossfilter.
- [Dygraphs](https://dygraphs.com/) - Interactive line charts library that works with huge datasets.
- [Echarts](https://github.com/ecomfe/echarts) - Highly customizable and interactive charts ready for big datasets.
- [Epoch](https://github.com/epochjs/epoch) - Perfect to create real-time charts.
- [Google Charts](https://developers.google.com/chart) - Interactive charts for browsers and mobile devices.
- [G2](https://g2plot.antv.vision/en) - an interactive and responsive charting library based on the grammar of graphics, maintained by Alibaba
- [GraphicsJS](http://www.graphicsjs.org) - Lightweight JS graphics library with intuitive API, based on SVG/VML.
- [lit-line](https://github.com/apinet/lit-line) - SVG Line Chart Web Component - light, fast, interactive & fully responsive.
- [MetricsGraphics.js](https://metricsgraphicsjs.org/) - Optimized for time-series data.
- [NVD3](https://github.com/novus/nvd3) - A reusable charting library written in d3.js.
- [Plotly.js](https://github.com/plotly/plotly.js/) - Powerful declarative library with support for 20 chart types.
- [React wrapper](https://github.com/hustcc/echarts-for-react)
- [TechanJS](https://techanjs.org/) - Stock and financial charts.
- [TOAST UI Chart](https://github.com/nhnent/tui.chart) - Complete library with support for legacy browsers.
- [Vizzu](https://github.com/vizzuhq/vizzu-lib) - Library for animated data visualizations and data stories.

### Charting libraries for graphs
- [Cola.js](https://marvl.infotech.monash.edu/webcola/) - A tool to create diagrams using constraint-based optimization techniques. Works with d3 and svg.js.
- [Cytoscape.js](https://js.cytoscape.org/) - JavaScript library for graph drawing maintained by [Cytoscape](https://www.cytoscape.org) core developers.
- [Sigma.js](https://sigmajs.org/) - JavaScript library dedicated to graph drawing.
- [VivaGraph](https://github.com/anvaka/VivaGraphJS) - Graph drawing library for JavaScript.
- [G6](https://github.com/antvis/g6) - Graph visualization library powered by Javascript & Typescript, maintained by Alibaba
- [diagram.js](https://github.com/bpmn-io/diagram-js) - Javascript diagram library serving as the basis for camunda's online BPMN modeler.
- [Uber React Digraph](https://github.com/uber/react-digraph) - React.js based directed graph library maintained by UBER.

### Maps
- [CARTO](https://github.com/CartoDB/cartodb) - CARTO is an open source tool that allows for the storage and visualization of geospatial data on the web.
- [Cesium](https://github.com/AnalyticalGraphicsInc/cesium) - WebGL 3D globes and maps.
- [Deck.gl](https://deck.gl/) - WebGL framework for visual exploratory data analysis of large datasets.
- [L7](https://github.com/antvis/L7) - Large-scale WebGL-powered Geospatial Data Visualization analysis framework, maintained by Alibaba
- [L7 Plot](https://github.com/antvis/L7Plot) - Geospatial Visualization Chart Library, maintained by Alibaba
- [DataMaps](https://github.com/markmarkoh/datamaps) - Interactive SVG maps using D3.js.
- [Dipper](https://github.com/antvis/dipper) - Map application development framework powered by L7, maintained by Alibaba.
- [Leaflet](https://leafletjs.com) - JavaScript library for mobile-friendly interactive maps.
- [Mapael](https://github.com/neveldo/jQuery-Mapael) - jQuery plugin based on raphael.js to display vector maps.

### d3
- See [Awesome D3](https://github.com/wbkd/awesome-d3)

### React
- [BizCharts](https://github.com/alibaba/BizCharts) - Data visualization library based on [G2](https://github.com/antvis/G2) and React
- [Graphin](https://github.com/antvis/Graphin) - Graph visualization library powered by React & Typescript (built on top of G6, maintained by Alibaba.
- [React-vis](https://github.com/uber/react-vis) - React components to build data visualizations.
- [Recharts](https://github.com/recharts/recharts) - Declarative react components to render D3 charts.
- [Victory](https://formidable.com/open-source/victory/) - Composable components for building interactive data visualizations
- [nivo](https://github.com/plouc/nivo) - Supercharged dataviz components for React with isomorphic ability, [demo](https://nivo.rocks).
- [React Svg Textures](https://github.com/finnfiddle/react-svg-textures) - Textures.js ported to React. Fully isomorphic.
- [DevExtreme React Chart](https://devexpress.github.io/devextreme-reactive/react/chart/) - High-performance plugin-based React chart for Bootstrap and Material Design.

## React Native
- [F2](https://github.com/antvis/F2) - An elegant, interactive and flexible charting library for mobile, maintained by Alibaba

### Misc
- [Graphology](https://github.com/graphology/graphology) - A robust & multipurpose Graph object for javascript & TypeScript; Serves as a base library to power other graph visualization libraries.
- [Piecon](https://github.com/lipka/piecon) - Pie charts in your favicon.
- [Textures.js](https://riccardoscalco.github.io/textures/) - A library to create SVG patterns.
- [Timeline.js](https://timeline.knightlab.com/) -  Create interactive timelines.
- [Vega](https://vega.github.io/vega/) - Vega is a visualization grammar, a declarative format for creating, saving, and sharing interactive visualization designs.
- [Vega-Lite](https://vega.github.io/vega-lite/) - is a high-level grammar of interactive graphics. It provides a concise JSON syntax for rapidly generating visualizations to support analysis.
- [Vis.js](https://visjs.org/) - A dynamic visualization library including timeline, networks and graphs (2D and 3D).

## Android tools
- [DecoView](https://github.com/bmarrdev/android-DecoView-charting) - Animated circular wheel chart library.
- [MPAndroidChart](https://github.com/PhilJay/MPAndroidChart) - A powerful & easy to use chart library.
- [WilliamChart](https://github.com/diogobernardino/WilliamChart) - Simple chart library.

## C++ tools
- [LargeVis](https://github.com/lferry007/LargeVis) - implementation of the [LargeVis paper](https://arxiv.org/abs/1602.00370), used to visualize large-scale and high-dimensional data.
- [PlotJuggler](https://github.com/facontidavide/PlotJuggler) - open-source Qt5 application to plot charts (based on Qwt).
- [Visualization Toolkit (VTK)](https://gitlab.kitware.com/vtk/vtk/blob/master/README.md) - open-source library for 3d Graphics, image processing and visualization.

## Golang tools
- [svgo](https://github.com/ajstarks/svgo) - Go Language Library for SVG generation.
- [plot](https://github.com/gonum/plot) - API for building and drawing plots in Go.
- [go-echars](https://github.com/chenjiandongx/go-echarts) - Simple yet powerful data visualizing library for Go.

## iOS tools
- [BEMSimpleLineGraph](https://github.com/Boris-Em/BEMSimpleLineGraph) - Highly customizable and interactive line graphs.
- [Charts](https://github.com/danielgindi/Charts) -  iOS port of MPAndroidChart. You can create charts for both platforms with very similar code.
- [JBChartView](https://github.com/Jawbone/JBChartView) - Charting library for both line and bar graphs.
- [PNChart](https://github.com/kevinzhow/PNChart) - A simple and beautiful chart lib used in Piner and CoinsMan.

## Machine Learning tools
- [TensorWatch](https://github.com/microsoft/tensorwatch) - Debugging and visualization tool for data science and machine learning

## Python tools
- [altair](https://altair-viz.github.io/) - Declarative statistical visualizations, based on Vega-Lite.
- [bokeh](https://bokeh.pydata.org/en/latest/) - Interactive Web Plotting for Python.
- [Chartify](https://github.com/spotify/chartify) - Bokeh wrapper that makes it easy for data scientists to create charts.
- [diagram](https://github.com/tehmaze/diagram) - Text mode diagrams using UTF-8 characters
- [ggplot](https://github.com/yhat/ggpy) - plotting system based on [R's](#r-tools) ggplot2.
- [glumpy](https://github.com/glumpy/glumpy) - OpenGL scientific visualizations library.
- [holoviews](https://holoviews.org/) - Complex and declarative visualizations from annotated data.
- [ipychart](https://github.com/nicohlr/ipychart) - The power of Chart.js in Jupyter Notebook.
- [mayai](https://docs.enthought.com/mayavi/mayavi/) - interactive scientific data visualization and 3D plotting in Python.
- [matplotlib](https://matplotlib.org/) - 2D plotting library.
- [missingno](https://github.com/ResidentMario/missingno) - provides flexible toolset of data-visualization utilities that allows quick visual summary of the completeness of your dataset, based on matplotlib.
- [plotly](https://plot.ly/python/) - Interactive web based visualization built on top of [plotly.js](https://github.com/plotly/plotly.js)
- [pptk](https://github.com/heremaps/pptk) - Visualize and work with 2D/3D pointclouds
- [PyQtGraph](https://www.pyqtgraph.org/) - Interactive and realtime 2D/3D/Image plotting and science/engineering widgets.
- [PyVista](https://github.com/pyvista/pyvista) – 3D plotting and mesh analysis through a streamlined interface for the Visualization Toolkit (VTK)
- [seaborn](https://seaborn.pydata.org/) - A library for making attractive and informative statistical graphics.
- [toyplot](https://toyplot.readthedocs.io/en/stable/) - The kid-sized plotting toolkit for Python with grownup-sized goals.
- [three.py](https://github.com/stemkoski/three.py/) - Easy to use 3D library based on PyOpenGL. Inspired by Three.js.
- [veusz](https://veusz.github.io/) - Python multiplatform GUI plotting tool and graphing library
- [VisPy](https://vispy.org/) - High-performance scientific visualization based on OpenGL.
- [vtk](https://www.vtk.org/) - 3D computer graphics, image processing, and visualization that includes a Python interface.
- [pandas-profiling](https://github.com/pandas-profiling/pandas-profiling) - generates statistical analytic reports with visualization for quick data analysis.
- [pyechars](https://github.com/pyecharts/pyecharts) - Python binding for Echarts library.

## R tools
- [ggplot2](https://ggplot2.tidyverse.org/) - A plotting system based on the grammar of graphics.
- [ggvis](https://ggvis.rstudio.com/) - A data visualization package with a syntax similar to ggplot2 which allows you to create rich interactive graphics.
- [lattice](https://lattice.r-forge.r-project.org) - trellis graphics for R
- [plotly](https://github.com/ropensci/plotly) - Interactive charts (including adding interactivity to ggplot2 output), cartograms and simple network diagrams
- [rbokeh](https://hafen.github.io/rbokeh/) - R Interface to Bokeh.
- [rgl](https://cran.r-project.org/web/packages/rgl/index.html) - 3D Visualization Using OpenGL
- [shiny](https://shiny.rstudio.com) - Framework for creating interactive applications/visualisations
- [visNetwork](https://datastorm-open.github.io/visNetwork/) - Interactive network visualisations

## Ruby tools
- [Chartkick](https://github.com/ankane/chartkick) - Create charts with one line of Ruby.

## Markup-based tools
- [mermaidjs](https://mermaidjs.github.io/mermaid-live-editor) - A simple markdown-like script language for generating charts from text via javascript
- [wavedrom.com](https://wavedrom.com/) - Draws your Timing Diagram or Waveform from simple textual description

## Other tools
Tools that are not tied to a particular platform or language.
- [Charted](https://github.com/mikesall/charted) - A charting tool that produces automatic, shareable charts from any data file.
- [Gephi](https://github.com/gephi/gephi) - An open-source platform for visualizing and manipulating large graphs
- [Kepler.gl](https://kepler.gl/) - Geospatial analysis tool for large-scale data sets.
- [Mermaid](https://github.com/knsv/mermaid) - A tool used to generate diagrams and flowcharts from text in a similar manner as markdown.
- [RAW](https://rawgraphs.io) - Create web visualizations from CSV or Excel files.
- [Spark](https://github.com/holman/spark) - Sparklines for the shell. It have several [implementations in different languages](https://github.com/holman/spark/wiki/Alternative-Implementations).
- [Visual-Insights](https://github.com/ObservedObserver/visual-insights) - Automatic insights extraction and visualization specification in data analysis.
- [X6](https://x6.antv.vision/en) - diagram creation library for rapid construction of DAG diagrams, ER diagrams, flowcharts and other applications, maintained by Alibaba
- [Graphviz](https://graphviz.org/) - Open source graph visualization command line tool and library. From input text to SVG,PDF,interactive web graph browser. 

# Resources

## Books
- [Design for Information](https://www.amazon.com/Design-Information-Introduction-Histories-Visualizations/dp/1592538061) by Isabel Meirelles.
- [The Best American Infographics 2014](https://www.amazon.com/Best-American-Infographics-2014/dp/0547974515) by Gareth Cook.
- [The Grammar of Graphics](https://www.amazon.com/Grammar-Graphics-Statistics-Computing/dp/0387245448/) by Leland Wilkinson. Basic visualization theory.
- [The Visual Display of Quantitative Information](https://www.amazon.com/Visual-Display-Quantitative-Information/dp/0961392142) by Edward Tufte.
- [The Wall Street Journal Guide to Information Graphics](https://www.amazon.com/Street-Journal-Guide-Information-Graphics/dp/0393347281) by Dona M. Wong
- [Visualization Analysis and Design](https://www.amazon.com/Visualization-Analysis-Design-AK-Peters/dp/1466508914) by Tamara Munzner.
- [Interactive Data Visualization for the Web](https://chimera.labs.oreilly.com/books/1230000000345) by Scott Murray. Available to read online. Focused on D3.
- [Data Visualization Toolkit](https://datavisualizationtoolkit.com) by Barrett Austin Clark. Uses D3, Ruby on Rails, Postgres, PostGIS, & Leaflet.
- [Data Visualisation: A Handbook for Data Driven Design](https://www.amazon.com/Data-Visualisation-Handbook-Driven-Design/dp/1526468921/) by Andy Kirk

## Catalogs
- [The Data Visualization Catalogue](https://www.datavizcatalogue.com) - A collection of data visualization methods, with pros and cons.
- [Data Viz Project](https://datavizproject.com)
- [The R Graph Gallery](https://www.r-graph-gallery.com)
- [From data to Viz](https://www.data-to-viz.com)
- [Chartopedia](https://www.anychart.com/chartopedia)
- [Interactive Chart Chooser](https://depictdatastudio.com/charts/) by Depict Data Studio
- Wikipedia
  - [Data visualization techniques](https://en.wikipedia.org/wiki/Data_visualization#Techniques)
  - [List of graphical methods](https://en.wikipedia.org/wiki/List_of_graphical_methods)
  - [Types of diagrams](https://en.wikipedia.org/wiki/Diagram#Gallery_of_diagram_types)
  - [Types of plots](https://en.wikipedia.org/wiki/Plot_(graphics)#Types_of_plots)
  - [Types of charts](https://en.wikipedia.org/wiki/Chart#Types)

## Podcasts
- [Data Stories](https://datastori.es/)
- [DataFramed](https://www.datacamp.com/community/podcast)
- [Data Viz Today](https://dataviztoday.com/)

## Twitter accounts
- [Alberto Cairo](https://twitter.com/albertocairo)
- [Andrei Kashcha](https://twitter.com/anvaka)
- [Benjamin Wiederkehr](https://twitter.com/datavis)
- [Jan Žák](https://twitter.com/zakjan)
- [Mara Averick](https://twitter.com/dataandme)
- [Martin Wattenberg](https://twitter.com/wattenberg)
- [Mike Bostock](https://twitter.com/mbostock)
- [Nadieh Bremer](https://twitter.com/NadiehBremer)
- [NYT Graphics](https://twitter.com/nytgraphics)
- [Visualizing](https://twitter.com/VisualizingOrg)

## Websites
- [Data For Visualization](https://dataforvisualization.com/) blog - Storytelling with data from the software developer's eye
- [Ann K. Emery](https://annkemery.com/)'s blog
- [Data Visualization Society](https://www.datavisualizationsociety.com/) - The Data Visualization Society is an organization dedicated to fostering community for data visualization professionals.
- [eagereyes](https://eagereyes.org/)
- [EvergreenData](https://stephanieevergreen.com/)
- [FlowingData](https://flowingdata.com/)
- [Information is Beautiful](https://www.informationisbeautiful.net/)
- [Junk Charts](https://junkcharts.typepad.com/) - Kaiser Fung takes apart why certain datavizes work/don't work
- [Lisa Rost thinks and discusses about why we dataviz](https://lisacharlotterost.github.io/)
- [Makeover Monday](https://www.makeovermonday.co.uk/) blog - [#MakeoverMonday](https://twitter.com/search?q=%23makeovermonday) on twitter
- [The Open News](https://source.opennews.org/articles/) blog -  Open news has some good dataviz related articles from time to time
- [The Pudding](https://pudding.cool/)
- [Truth & Beauty Operations](https://truth-and-beauty.net/)
- [University of Washington Interactive Data Lab Papers](https://idl.cs.washington.edu/papers)
- [vis4.net](https://www.vis4.net/blog/) - Random thoughts on visualization and data journalism by Gregor Aisch


# Contributing

- Please check for duplicates first.
- Keep descriptions short, simple and unbiased.
- Please make an individual commit for each suggestion
- Add a new category if needed.

Thanks for your suggestions!


# Contributors

- Fabio Souto originally createad this repo, connect with Fabio at [fabiosouto.me](https://fabiosouto.me/).
- [Javier Luraschi](https://github.com/javierluraschi) is the current maintainer, he builds predictive visualizations at [Hal9](https://hal9.com).


- - -

If you have any question about this opinionated list, do not hesitate to contact me [@javierluraschi](https://twitter.com/javierluraschi) on Twitter or [open a GitHub issue](https://github.com/javierluraschi/awesome-dataviz/issues/new).
