Datapane is the easiest way to create data science reports from Python.

Overview

Datapane

Datapane Teams | Documentation | API Docs | Changelog | Twitter | Blog

Pip Downloads Latest release Conda (channel only)

Share interactive plots and data in 3 lines of Python.

Datapane is a Python library for building interactive reports for your end-users in seconds.

Import our library into your existing script/notebook and build reports from pandas Dataframes, plots from Python viz libraries, Markdown, as well as data exploration and layout components.

Export your reports as standalone HTML documents, or share and embed them via our free hosted platform.

Getting Started

Installing Datapane

The best way to install Datapane is through pip or conda.

pip

$ pip3 install -U datapane
$ datapane hello-world

conda

$ conda install -c conda-forge "datapane>=0.12.0"
$ datapane hello-world

Datapane also works well in hosted Jupyter environments such as Colab or Binder, where you can install as follows:

!pip3 install --quiet datapane
!datapane signup

Explainer Video

Datapane.Public.Tutorial.mp4

Hello world

Let's say you wanted to create a report with an interactive plot and table viewer:

import altair as alt
from vega_datasets import data
import datapane as dp

source = data.cars()

plot1 = alt.Chart(source).mark_circle(size=60).encode(
  x='Horsepower',
  y='Miles_per_Gallon',
  color='Origin',
  tooltip=['Name', 'Origin', 'Horsepower', 'Miles_per_Gallon']
).interactive()

dp.Report(
    dp.Text("## Hello world!"),
    dp.Plot(plot1),
    dp.DataTable(source)
).save(path="Hello_world.html")

This will package a standalone HTML document that looks as follows:

Simple Datapane report example with text, plot and table

Your users can scroll & zoom on the chart, filter and download the tabular data.

Advanced Layout Options

Datapane is great for presenting complex data and provides many components for creating advanced interactive layouts. Let's you need to write a technical document:

import altair as alt
from vega_datasets import data
import datapane as dp

source = data.cars()
plot1 = alt.Chart(source).mark_circle(size=60).encode(
    x='Horsepower',
    y='Miles_per_Gallon',
    color='Origin',
    tooltip=['Name', 'Origin', 'Horsepower', 'Miles_per_Gallon']
).interactive()

dp.Report(
    dp.Page(title="Charts and analysis",
            blocks=[
                dp.Formula("x^2 + y^2 = z^2"),
                dp.Group(
                    dp.BigNumber(
                        heading="Number of percentage points",
                        value="84%",
                        change="2%",
                        is_upward_change=True
                    ),
                    dp.BigNumber(
                        heading="Simple Statistic",
                        value=100
                    ), columns=2,
                ),
                dp.Select(blocks=[
                    dp.Plot(plot1, label="Plot"),
                    dp.HTML('''<iframe width="560" height="315" src="https://www.youtube.com/embed/dQw4w9WgXcQ" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>''', label="Video")
                ]),
            ]),
    dp.Page(title="Dataset", blocks=[
            dp.DataTable(source)
    ])
).save(path="Complex_layout.html", open=True)

Layout blocks like dp.Select, dp.Group and dp.Page allow you to highlight key points without sacrificing detail, while content blocks like dp.HTML and dp.Formula (LaTeX) can enrich your report. The final result looks like this:

Complex Datapane report example

Check out the full list of blocks in our documentation.

Sharing Reports

Sign up for a free account

In addition to saving documents locally, you can host, share and embed reports via Datapane Studio.

To get your free API key, run the following command in your terminal to sign up via email/OAuth:

$ datapane signup

If you're using Jupyter, run !datapane signup instead.

Next, in your Python notebook or script simply change the save function to upload on your report:

dp.Report(
 ...
#).save(path="hello_world.html")
).upload(name="Hello world")

Your Studio account comes with the following:

  • Unlimited public reports - great for embedding into places like Medium, Reddit, or your own website (see here)
  • 5 private reports - share these via email within your organization

Featured Examples

Here a few samples of the top reports created by the Datapane community. To see more, check out our gallery section.

Teams

Datapane Teams is our plan for teams, which adds the following features on top of our open-source and Studio plans:

  • Private domain and organizational workspace
  • Multiple projects
  • Client-sharing functionality
  • Unlimited Datapane Apps
  • Custom App packages and environments
  • Secure Warehouse & API Integration
  • File and Dataset APIs
  • Private Slack or Teams support

Datapane Teams is offered as both a managed SaaS service and an on-prem install. For more information, see the documentation. You can find pricing here.

Next Steps

Analytics

By default, the Datapane Python library collects error reports and usage telemetry. This is used by us to help make the product better and to fix bugs. If you would like to disable this, simply create a file called no_analytics in your datapane config directory, e.g.

Linux

$ mkdir -p ~/.config/datapane && touch ~/.config/datapane/no_analytics

macOS

$ mkdir -p ~/Library/Application\ Data/datapane && touch ~/Library/Application\ Data/no_analytics

Windows (PowerShell)

PS> mkdir ~/AppData/Roaming/datapane -ea 0
PS> ni ~/AppData/Roaming/datapane/no_analytics -ea 0

You may need to try ~/AppData/Local instead of ~/AppData/Roaming on certain Windows configurations depending on the type of your user-account.

Joining the community

Looking to get answers to questions or engage with us and the wider community? Check out our GitHub Discussions board.

Submit feature requests, issues, and bug reports on this GitHub repo.

Open-source, not open-contribution

Datapane is currently closed to external code contributions. However, we are tremendously grateful to the community for any feature requests, ideas, discussions, and bug reports.

Owner
Datapane
Create and share interactive reports from Python
Datapane
Tools for exploratory data analysis in Python

Dora Exploratory data analysis toolkit for Python. Contents Summary Setup Usage Reading Data & Configuration Cleaning Feature Selection & Extraction V

Nathan Epstein 599 Dec 25, 2022
An interactive dashboard for visualisation, integration and classification of data using Active Learning.

AstronomicAL An interactive dashboard for visualisation, integration and classification of data using Active Learning. AstronomicAL is a human-in-the-

45 Nov 28, 2022
Bokeh Plotting Backend for Pandas and GeoPandas

Pandas-Bokeh provides a Bokeh plotting backend for Pandas, GeoPandas and Pyspark DataFrames, similar to the already existing Visualization feature of

Patrik Hlobil 822 Jan 07, 2023
Extensible, parallel implementations of t-SNE

openTSNE openTSNE is a modular Python implementation of t-Distributed Stochasitc Neighbor Embedding (t-SNE) [1], a popular dimensionality-reduction al

Pavlin Poličar 1.1k Jan 03, 2023
YOPO is an interactive dashboard which generates various standard plots.

YOPO is an interactive dashboard which generates various standard plots.you can create various graphs and charts with a click of a button. This tool uses Dash and Flask in backend.

ADARSH C 38 Dec 20, 2022
Render tokei's output to interactive sunburst chart.

Render tokei's output to interactive sunburst chart.

134 Dec 15, 2022
Runtime analysis of code with plotting

Runtime analysis of code with plotting A quick comparison among Python, Cython, and the C languages A Programming Assignment regarding the Programming

Cena Ashoori 2 Dec 24, 2021
2021 grafana arbitrary file read

2021_grafana_arbitrary_file_read base on pocsuite3 try 40 default plugins of grafana alertlist annolist barchart cloudwatch dashlist elasticsearch gra

ATpiu 5 Nov 09, 2022
Regress.me is an easy to use data visualization tool powered by Dash/Plotly.

Regress.me Regress.me is an easy to use data visualization tool powered by Dash/Plotly. Regress.me.-.Google.Chrome.2022-05-10.15-58-59.mp4 Get Started

Amar 14 Aug 14, 2022
An open-source plotting library for statistical data.

Lets-Plot Lets-Plot is an open-source plotting library for statistical data. It is implemented using the Kotlin programming language. The design of Le

JetBrains 820 Jan 06, 2023
OpenStats is a library built on top of streamlit that extracts data from the Github API and shows the main KPIs

Open Stats Discover and share the KPIs of your OpenSource project. OpenStats is a library built on top of streamlit that extracts data from the Github

Pere Miquel Brull 4 Apr 03, 2022
Application for viewing pokemon regional variants.

Pokemon Regional Variants Application Application for viewing pokemon regional variants. Run The Source Code Download Python https://www.python.org/do

Michael J Bailey 4 Oct 08, 2021
Python code for solving 3D structural problems using the finite element method

3DFEM Python 3D finite element code This python code allows for solving 3D structural problems using the finite element method. New features will be a

Rémi Capillon 6 Sep 29, 2022
Jupyter Notebook extension leveraging pandas DataFrames by integrating DataTables and ChartJS.

Jupyter DataTables Jupyter Notebook extension to leverage pandas DataFrames by integrating DataTables JS. About Data scientists and in fact many devel

Marek Čermák 142 Dec 28, 2022
Fast scatter density plots for Matplotlib

About Plotting millions of points can be slow. Real slow... 😴 So why not use density maps? ⚡ The mpl-scatter-density mini-package provides functional

Thomas Robitaille 473 Dec 12, 2022
Implementation of SOMs (Self-Organizing Maps) with neighborhood-based map topologies.

py-self-organizing-maps Simple implementation of self-organizing maps (SOMs) A SOM is an unsupervised method for learning a mapping from a discrete ne

Jonas Grebe 6 Nov 22, 2022
This is a super simple visualization toolbox (script) for transformer attention visualization ✌

Trans_attention_vis This is a super simple visualization toolbox (script) for transformer attention visualization ✌ 1. How to prepare your attention m

Mingyu Wang 3 Jul 09, 2022
Library for exploring and validating machine learning data

TensorFlow Data Validation TensorFlow Data Validation (TFDV) is a library for exploring and validating machine learning data. It is designed to be hig

688 Jan 03, 2023
A command line tool for visualizing CSV/spreadsheet-like data

PerfPlotter Read data from CSV files using pandas and generate interactive plots using bokeh, which can then be embedded into HTML pages and served by

Gino Mempin 0 Jun 25, 2022
By default, networkx has problems with drawing self-loops in graphs.

By default, networkx has problems with drawing self-loops in graphs. It makes it hard to draw a graph with self-loops or to make a nicely looking chord diagram. This repository provides some code to

Vladimir Shitov 5 Jan 06, 2022