| | Open-source? Does it cost money? | Requires internet connection? | Real-time support for data entry? | | | Connection details (requirements, cloud-based, etc.) | |
---|
Streamlit (Streamlit • A faster way to build and share data apps ) | Python | | | | Beginner-friendly Simple API with excellent documentation Can mix visualizations into one presentation Can re-use Python code instead of rewriting it
| | Uses a localhost for local development Streamlit Cloud allows you to run applications in the cloud, share with colleagues Security • Streamlit
| You can display images, audio, and videos with Streamlit (Python Tutorial: Streamlit | DataCamp) You can input widgets Display progress and status bars Can show data visualization and maps Can make machine learning applications
|
Dash by Plotly (Dash Documentation & User Guide | Plotly ) | Python | Open source, MIT licensed Free Dash Enterprise (ie. deployment server) has an associated cost → have to fill out some form on the website to learn more about pricing
| | | Pure Python → No Javascript unless you want to include Javascript assets Jupyter and Django integrations Cross-filtering/interacting with Plotly charts Aesthetics are more flexible, compatible with Bootstrap Has “callback” functions Robust modules library
| Difficulty with interactivity Difficulty to customize API No HTML → Must use Markdown function Cannot have two Python callbacks update the same element Limited colour options Plots that are shared are visible to everyone Takes time to load, a little slow
| | |
Seaborn (seaborn: statistical data visualization — seaborn 0.13.2 documentation ) | Python | | | | Can install other libraries while using Seaborn since Seaborn is based on matplotlib Generates engaging plot to represent our data Feed our data using replot() method, library computes the values and places them without us worrying it Default themes are aesthetically pleasing Visualizes information in matrices and DataFrames
| Estimators are not suited for small datasets Calculating and plotting confidence intervals uses bootstraps Small datasets have inaccurate intervals since bootstraps are suited for large datasets Have to calculate the intervals ourselves
May need to reformat data (ie. Three common seaborn difficulties | by Michael Waskom | Medium) since Seaborn does not plot datasets normally Two different plot functions and difficulty plotting data other than categorical
| | Based on matplotlib Close integration with pandas Dataset oriented API for examining relationships between multiple variables Specialized support for categorical variables to show observations or aggregate statistics Concise control over matplotlib figure styling with several built-in themes. Tools for choosing color palettes to reveal data patterns
|
Bokeh (Bokeh ) | Python | | | | Plots are flexible, interactive, and shareable Very Python centric Has a host of third-party libraries that extends its use with high-level user interface Handles data quickly Dashboards with Bokeh server are dynamic and very fast
| | | |
D3.js (D3 ) | Javascript | | | | Open source and can be used with other Javascript frameworks (ie. Angular.js, Ember.js, or React) Can add own features to source code to accomplish your goals Handles DOM, HTML, CSS, SVG, and canvas → does not need other plug-in other than browser, does not need additional debugging Can create dynamic, real-time transformation by manipulating DOM elements into data visualization Works on data and is specialized and appropriate with data visualization functions in Javascript library
| Does not support older browsers → need to put static placeholder if users are on older browsers Cannot easily conceal original data → Challenging to use D3 if you want to hide data Does not generate predetermined visualizations for you. Interactivity requires coding
| | Data driven, gets data from arrays, CSV, XML, TSV, JSON, etc., and also API Should know/have:
|
Charts.js (Chart.js ) | Javascript | | | | Interactive charts Actively developed and supported Chart-types, animations Plugins supported Lots of Javascript framework integrations (React, Vue, Svelte, etc.) Lots of documentation, samples Suited for large data sets, skips data parsing, and normalization
| Canvas based → Bitmaps, shares the same issues as non-vectory format Only supports display of graphs and charts → Limited to standard charts
| | |