Dashboard Alternatives Research

Library name

Language

Open-source? Does it cost money?

Requires internet connection?

Real-time support for data entry?

Strengths

Limitations

Connection details (requirements, cloud-based, etc.)

Extra info

Library name

Language

Open-source? Does it cost money?

Requires internet connection?

Real-time support for data entry?

Strengths

Limitations

Connection details (requirements, cloud-based, etc.)

Extra info

Streamlit (Streamlit • A faster way to build and share data apps )

Python

  • Open source

  • Free

  • No

  • Beginner-friendly

  • Simple API with excellent documentation

  • Can mix visualizations into one presentation

  • Can re-use Python code instead of rewriting it

  • Requires a bit of HTML knowledge to truly customize

  • Reruns the entire app once the input is changed

  • 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

  • Possible to run without internet connection, but all resources need to be bundled within the app

  • 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

  • Open source

  • Free

  • No

  • Seaborn has datasets that are available on Github → Require internet to load the datasets into Seaborn

  • Not really → Uses matplotlib, so you need a while loop to use “real time data”

  • 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

  • Based on matplotlib, no connection

  • 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

  • Open source

  • Free

  • Yes, supports streaming and real-time data

  • 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

  • Python centric

  • Limited interactivity

  • No 3D plotting

  • Plotting code is more intense

  • Styling graphs is more difficult

  • Can add custom Javascript for advanced/specialized cases

D3.js (D3 )

Javascript

  • Open source

  • Free

  • No, but must provide provide properly referenced path if you want D3 to work offline

  • Requires a web browser

  • Can form real-time graphs, charts, and extensive ways to visualize the data

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

    • Time-inefficient to generate D3 visualizations where an alternative source can do it faster and better

  • Interactivity requires coding

  • Requires a web browser

  • No cloud?

  • Don’t think you can collaborate with others on D3??

  • Data driven, gets data from arrays, CSV, XML, TSV, JSON, etc., and also API

  • Should know/have:

    • Text editor

    • Web browser

    • HTML, CSS, DOM, Javascript

    • Web server

Charts.js (Chart.js )

Javascript

  • Open source

  • Free

  • There’s online and offline mode

  • 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

  • I believe there is no cloud for Chart.js?

 

 

References:

4 Python Packages to Create Interactive Dashboards | by Cornellius Yudha Wijaya | Towards Data Science

The best tools for Dashboarding in Python | by Abdishakur | Spatial Data Science | Medium

Pros and Cons of Streamlit 2023 (trustradius.com)

Python Tutorial: Streamlit | DataCamp

Pros & Cons of Dash - Dash Python - Plotly Community Forum

Plotly Dash vs Streamlit — Which is the best library for building data dashboard web apps? | by JP Hwang | Towards Data Science

5 challenges using Plotly Dash for web apps | Analytics Vidhya (medium.com)

Seaborn Library Python | Perks of Using Seaborn - DataScienceVerse

The Ultimate Python Seaborn Tutorial: Gotta Catch 'Em All (elitedatascience.com)

Is Seaborn too assertive at times? | by Pragya Verma | Analytics Vidhya | Medium

Bokeh Vs Plotly: Which One Is Better In 2022? - Buggy Programmer

D3.js Tutorial - Data Visualization Framework For Beginners (softwaretestinghelp.com)

Chart.js advantages and prominent features explained · Issue #10620 · chartjs/Chart.js · GitHub

Chart.js - Quick Guide (tutorialspoint.com)

D3 or Chart.js for Data Visualisation? (createwithdata.com)