Datapane client library and CLI tool
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.
The best way to install Datapane is through pip or conda.
$ pip3 install -U datapane $ datapane hello-world
$ 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
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:
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.Page allow you to highlight key points without sacrificing detail, while content blocks like
dp.Formula (LaTeX) can enrich your report. The final result looks like this:
Check out the full list of blocks in our documentation.
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
Here a few samples of the top reports created by the Datapane community. To see more, check out our gallery section.
- Tutorial Report by Datapane Team
- Coindesk analysis by Greg Allan
- COVID-19 Trends by Quarter by Keith Johnson
- Ecommerce Report by Leo Anthias
- Example Academic Paper by Kalvyn Roux
- Exploration of Restaurants in Kyoto by Ryan Hildebrandt
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
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.
$ mkdir -p ~/.config/datapane && touch ~/.config/datapane/no_analytics
$ mkdir -p ~/Library/Application\ Data/datapane && touch ~/Library/Application\ Data/no_analytics
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.
Release history Release notifications | RSS feed
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
|Filename, size||File type||Python version||Upload date||Hashes|
|Filename, size datapane-0.13.2.tar.gz (2.6 MB)||File type Source||Python version None||Upload date||Hashes View|
|Filename, size datapane-0.13.2-py3-none-any.whl (2.6 MB)||File type Wheel||Python version py3||Upload date||Hashes View|
Hashes for datapane-0.13.2-py3-none-any.whl