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.

Comments
  • Import error while trying to parse irrelevant command line arguments

    Import error while trying to parse irrelevant command line arguments

    System Information

    • OS: Mac OS
    • Python version: 3.7.7
    • Python environment: pip
    • Using jupyter: false
    • Datapane version: 0.12.3

    Bug / Issue

    Hi there, we recently started to use datapane on our team to generate reports and we really like it.

    We encountered an issue in our CI. Whenever we import datapane in one of our tests, we get the following error: click.exceptions.BadParameter: 'no:warnings', should be name=value

    The reason is we run our tests using: python -m pytest tests/ -p no:warnings

    But datapane in its main init.py module tries to parse any command line parameter starting with '-p', and in our case fails because this flag is for pytest's use.

    I'm not sure what the correct behavior should be, one option is to disable this override mechanism when datapane is used as a lib (and not an explicit datapane command), another option is to use more specific flag prefix instead of just '-p', maybe '--datapane-p' or something similar.

    Hope this issue is not a duplicate, I didn't find anything similar.

    Full error stack:

    /usr/local/lib/python3.7/site-packages/datapane/client/utils.py:104: in split_param
        k, v = x.split("=", maxsplit=1)
    E   ValueError: not enough values to unpack (expected 2, got 1)
    During handling of the above exception, another exception occurred:
    tests/reporting/test_report_creator.py:8: in <module>
        from reporting.serve_report.report_creator import _get_report_pages_block
    reporting/serve_report/report_creator.py:4: in <module>
        import datapane as dp
    /usr/local/lib/python3.7/site-packages/datapane/__init__.py:87: in <module>
        config = parse_command_line()
    /usr/local/lib/python3.7/site-packages/datapane/client/utils.py:132: in parse_command_line
        return process_cmd_param_vals(dp_args.parameter)
    /usr/local/lib/python3.7/site-packages/datapane/client/utils.py:111: in process_cmd_param_vals
        return {k: convert_param_val(v) for (k, v) in split_param(params)}
    /usr/local/lib/python3.7/site-packages/datapane/client/utils.py:111: in <dictcomp>
        return {k: convert_param_val(v) for (k, v) in split_param(params)}
    /usr/local/lib/python3.7/site-packages/datapane/client/utils.py:106: in split_param
        raise click.BadParameter(err_msg.format(x))
    E   click.exceptions.BadParameter: 'no:warnings', should be name=value
    
    bug release pending 
    opened by mzedayda 14
  • Change cell limit for Table

    Change cell limit for Table

    Hello,

    is it possible to change the cell limit of the Table object? I understand that DataTable does not have a cell constraint but the layout of the Table object fits my needs better. I am using datapane 0.15.4.

    release pending 
    opened by julian-belina 10
  • dp.Report failed when using docker image

    dp.Report failed when using docker image

    Following the datapane configuration guidelines, I created a giswqs/geemap-datapane docker image based on nstack/datapane-python-runner. The Python script failed at the last line dp.Report(dp.Plot(Map)).publish(name='geemap_folium_map') with a TypeError: can't pickle weakref objects. Any advice? Thanks.

    https://datapane.com/giswqs/scripts/geemap_test/

    Dockerfile

    from nstack/datapane-python-runner:latest
    RUN pip3 install --user -U geemap
    

    datapane.yaml

    name: geemap_test
    script: geemap_test.py # this could also be ipynb if it was a notebook
    container_image_name: giswqs/geemap-datapane
    

    geemap.test.py

    import folium
    import datapane as dp 
    import geemap.eefolium as geemap
    import ee
    import os
    
    secret = dp.Variable.get(name='EARTHENGINE_TOKEN')
    ee_token = secret.value
    
    credential = '{"refresh_token":"%s"}' % ee_token
    credential_file_path = os.path.expanduser("~/.config/earthengine/")
    os.makedirs(credential_file_path, exist_ok=True)
    with open(credential_file_path + 'credentials', 'w') as file:
        file.write(credential)
    
    # m = folium.Map(location=[45.5236, -122.6750])
    ee.Initialize()
    Map = geemap.Map(center=[40,-100], zoom=4)
    
    # Add Earth Engine dataset
    image = ee.Image('USGS/SRTMGL1_003')
    
    # Set visualization parameters.
    vis_params = {
      'min': 0,
      'max': 4000,
      'palette': ['006633', 'E5FFCC', '662A00', 'D8D8D8', 'F5F5F5']}
    
    # Print the elevation of Mount Everest.
    xy = ee.Geometry.Point([86.9250, 27.9881])
    elev = image.sample(xy, 30).first().get('elevation').getInfo()
    print('Mount Everest elevation (m):', elev)
    
    # Add Earth Engine layers to Map
    Map.addLayer(image, vis_params, 'DEM')
    Map.addLayer(xy, {'color': 'red'}, 'Mount Everest')
    
    # Center the map based on an Earth Engine object or coordinates (longitude, latitude)
    # Map.centerObject(xy, 4)
    Map.setCenter(86.9250, 27.9881, 4)
    
    # Map.addLayerControl() # This line is not needed for ipyleaflet-based Map.
    Map.setControlVisibility()
    
    dp.Report(dp.Plot(Map)).publish(name='geemap_folium_map')
    
    opened by giswqs 10
  • Optimised local reports

    Optimised local reports

    Prerequisites

    • [x] Has been tested locally
    • [ ] If a bugfix, have included a breaking test if possible
    • [ ] If UI change, have added screenshots

    Proposed Changes

    • Implement lightweight local report (156KB demo report)
    • Optimise standalone reports to reduce bundle size to 10MB: Split out base and report tailwind styles, move katex to CDN, use terser minification in rollup
    • Implement Report.build and Report.serve methods for building serve-able reports and serving them from a dev local server
    • Convertcode-block from a web component to normal Vue component for now as it was adding complexity to the build process

    TODO

    • ~~Address some misc TODOs~~
    • ~~Update tests~~
    • ~~Sync lightweight report CDN with @antdking 's changes~~
    • Add test to local.api.test_reports
    opened by Buroni 9
  • Binary columns rendered as boolean values

    Binary columns rendered as boolean values

    System Information

    • OS: MacOS 12.5.1
    • Python version: 3.10.6
    • Python environment: pip
    • Using jupyter: true
    • Datapane version: 0.15.0

    Bug / Issue

    When using dataframes, binary columns are rendrered as boolean values ex:

    dp.DataTable( pd.DataFrame( { 1: [1, 0, 0, 1], 2: [1, 0, 0, 1], 3: [1, 0, 0, 1], 4: [1, 0, 0, 1], 5: [1, 0, 0, 1], 6: [1, 0, 0, 1], } ) ) Will be rendered as: 1 2 ... True True ... False False. ...

    release pending 
    opened by tr31zh 8
  • dp.Select not displaying correctly with 10 selects on a page

    dp.Select not displaying correctly with 10 selects on a page

    System Information

    • OS:
    • Python version: 3.9
    • Python environment: pip
    • Using jupyter: false
    • Datapane version: ?

    Bug / Issue

    I have a page with 10 select blocks. A drop down lists the 10 blocks correctly, all the 10 blocks are selectable. So far so good. When you select a block from the dropdown, it displays but the block selected is not shown correctly in the drop dowm, so you don't know which block you are looking at.

    https://datapane.com/reports/VkBWjZA/ifsc-world-cup-event-statistics/

    go to the country results world cups tab and try the dropdown, the text in the dropdown doesn't change when you pick from the list. This does work ok on other tabs with a dropdown with <10 entries.

    triage release pending 
    opened by paulhighams 8
  • Issue Installing DataPane

    Issue Installing DataPane

    System Information

    • OS: MAC M1
    • Python version: 3.9.7
    • Python environment: conda
    • Using jupyter: true
    • Datapane version:

    Bug / Issue

    Issue installing Datapane -->

    Screenshot 2022-05-30 at 12 14 41 triage 
    opened by Shespeaks-data 8
  • Table function changing dates (-1) from Pandas DataFrame upon execution

    Table function changing dates (-1) from Pandas DataFrame upon execution

    Hello,

    I am using DataPane to create a simple report to track historical metric values, day over day. The data is being read in via Pandas excel function to a DataFrame and then I am creating a graph in plotly to visualize it. I am trying to leverage the table function in DataPane to also give the raw data along with the graph. I noticed that the dates are shifting with respect to the data. The first date in my file is September 1st, yet it is shifting everything back 1 day so that the start date of the RAW Data table output is August 31st.

    Does anyone see anything that I can do, or is this a potential bug? I know i could probably convert the dates to a string, but it seems like i shouldn't have to do that if the table function is going to assume data types.

    image

    DataPaneTest.xlsx

    ` import pandas as pd import datapane as dp import plotly.graph_objects as go import plotly.io as pio

    HistoricalData = pd.read_excel(r'mypath\DataPaneTest.xlsx') HistoricalData['DataDate'] = HistoricalData['DataDate'].astype('datetime64[ns]')

    pio.templates.default = "plotly_dark"

    fig = go.Figure() fig.add_trace(go.Scatter(x=HistoricalData['DataDate'], y=HistoricalData['col1'], mode='lines+markers', name='t1')) fig.add_trace(go.Scatter(x=HistoricalData['DataDate'], y=HistoricalData['col2'], mode='lines+markers', name='t2')) fig.add_trace(go.Scatter(x=HistoricalData['DataDate'], y=HistoricalData['col3'], mode='lines+markers', name='t3')) fig.add_trace(go.Scatter(x=HistoricalData['DataDate'], y=HistoricalData['col4'], mode='lines+markers', name='t4')) fig.update_layout( title_text='t0',title_x=0.5)

    dp.Report( dp.Markdown("# Stuff"), dp.Markdown(" "), dp.Plot(fig), dp.Markdown(" "), dp.Markdown("## RAW Data"), dp.Table(HistoricalData)

    ).save(path=r'mypath\DataPaneTest.html', open=True) `

    Originally posted by @JCP281 in https://github.com/datapane/datapane/discussions/39

    opened by JCP281 8
  • Matplotlib plot gets cropped in HTML output, but fine in Notebook

    Matplotlib plot gets cropped in HTML output, but fine in Notebook

    System Information

    • OS: Linux
    • Python version: 3.9.15
    • Python environment: pip
    • Using jupyter: true and false
    • Datapane version: 0.15.4

    Bug / Issue

    I generate exactly the same plots in Jupyter Notebook and Datapane, but when rendered in Datapane, the bottom half of the chart is removed.

    Chart from Notebook

    image

    Chart from Datapane

    image

    Code

        app = dp.App(
            dp.Page(title="Quality",
                    blocks=[f"### {config.team.upper()}: Quality",
                            quality_blurb,
                            dp.Group(
                                dp.Plot(generate_velocity_by_type(data.issues),responsive=False),
                                dp.Text(str(generate_velocity_by_type.__doc__)),
                                columns=2,
                            ),
                    ]
            ),
            dp.Page(title="Efficiency",
                    blocks=[f"### {config.team.upper()}: Efficency",
                            efficiency_blurb,
                            dp.Group(
                                dp.Plot(generate_planned_vs_done_percentage(data.issues),responsive=False),
                                dp.Text(str(generate_planned_vs_done_percentage.__doc__)),
                                columns=2,
                            ),
                    ]
            ),
            dp.Page(title="Business Value",
                    blocks=[f"### {config.team.upper()}: Business Value",
                            'tbc',
                    ]
            ),
            dp.Page(title="Downloads",
                    blocks=[f"### {config.team.upper()}: Downloads"] + generate_downloads(data.excel_files)
            ),
            layout=dp.PageLayout.SIDE,
        )
    
        app.save(
            f'{config.output_dir}/{config.team}.html',
            formatting=dp.AppFormatting(
            width=dp.AppWidth.FULL
            )
        )
    
    

    I've tried playing with the responsive setting to no avail, so now I'm stumped.

    Any help would be much appreciated.

    bug release pending 
    opened by bradwood 7
  • MT Changes (Docs)

    MT Changes (Docs)

    Thank you so much for contributing to Datapane, please help us by filing out this PR template and ensure you have read the CONTRIBUTING.md.

    It may take a few days to review your PR and merge it - please bear with us!

    Thanks!

    fixes #

    Prerequsites

    • [ ] Has been tested locally
    • [ ] If a bugfix, have included a breaking test if possible

    Proposed Changes

    • ...
    opened by mands 6
  • Feat/templates cli

    Feat/templates cli

    Thank you so much for contributing to Datapane, please help us by filing out this PR template and ensure you have read the CONTRIBUTING.md.

    It may take a few days to review your PR and merge it - please bear with us!

    Thanks!

    Prerequsites

    • [x] Has been tested locally
    • [ ] If a bugfix, have included a breaking test if possible

    Proposed Changes

    This PR adds template support to the Datapane CLI. The high-level steps of the template feature are:

    1. Clone a Datapane template repository and delete the .git directory.
    2. Change current working directory to the new template directory.
    3. Run the template.py script, which will open the locally saved template.html upon completion.

    Usage

    From CLI: datapane template <repo_source>, e.g.

    • datapane template dp-template-classifier-dashboard
    • datapane template https://github.com/datapane/dp-template-classifier-dashboard.

    Supports both relative (for the datapane organization) and absolute repository locations.

    Repository template for creating Datapane templates

    Included in this review is the new repository template at https://github.com/datapane/dp-template. This includes a directory structure and instructions on creating new Datapane templates.

    This has been used to create the new Datapane template, Performance dashboard for classifiers (https://github.com/datapane/dp-template-classifier-dashboard).

    opened by shahinrostami 6
  • Serialization of Page class

    Serialization of Page class

    Hi,

    I was wondering if there is any way that we can serialize the Page class, That way we can parallelize the report creation on multiple steps of a pipeline.

    We tried simply pickling the class, it saves and loads fine, but when we try to combine multiple pickles of pages in a report on a different machine, we got the following error:

    FileNotFoundError: [Errno 2] No such file or directory: '/tmp/dp-tmp-tat6pme_/dp-tmp-vaa7vafv.tbl.html' This makes clear that some classes are not self-sufficient, as they have to resort to temporary HTML pages, which makes it impossible to serialize the way we are doing it.

    Is there any way to do that?

    opened by luccaportes 0
  • Python 3.11 Support

    Python 3.11 Support

    Hi folks,

    (when) is Python 3.11 support planned?

    Tried to install on Ubuntu 22.04 with conda (not resolving) and pip (pip subprocess to install build dependencies did not run successfully), but both failed.

    Thanks!

    opened by do-me 1
  • Control the relative size of the columns in `dp.Group`

    Control the relative size of the columns in `dp.Group`

    Is it possible to control the proportions of the columns when using dp.Group with columns?

    I want to create a dashboard with left and right panels and the wider middle section. Each of the side panels would up 1/5 of the screen while the middle section takes up 3/5 of the screen. The only way I was able to do something similar was create 5 columns. However, I cannot use the middle section as a single group, making in impossible to create an appealing dashboard.

    Do you think it would be a good idea to create more a more advanced interface to dp.Group where we could specify not only the number of columns, but also the proportions these columns take up on the screen?

    opened by antopolskiy 1
  • Add direct support for SVG images

    Add direct support for SVG images

    Is it possible to write a method which allows the direct integration of svg images into a report? Currently I am converting my svg graphs into png files in order to include them into my report. I am not sure how this is done properly using the DataPane HTML object.

    opened by julian-belina 3
  • App.save is saving singlehtml file in local but still trying to wrongly upload to events.datapane.com server

    App.save is saving singlehtml file in local but still trying to wrongly upload to events.datapane.com server

    System Information

    • OS: Windows 11
    • Python version: 3.10
    • Python environment: pip
    • Using jupyter: false, doing coding in Pycharm community IDE
    • Datapane version: 0.15.4

    Bug / Issue

    bug documentation 
    opened by purnendumaity 4
  • Embedding report in medium not working

    Embedding report in medium not working

    System Information

    • OS: Windows
    • Python version: 3.7.1
    • Python environment: pip
    • Using jupyter: true
    • Datapane version: 0.15.4

    Bug / Issue

    Hello, I'm trying to embed a visualization into a medium article. I've successfully created the report: https://cloud.datapane.com/apps/yklX4vk/my-plot/

    When I click on share, I'm see this:

    image

    If I use that link in medium, I get this:

    image

    I want to share it this way:

    image

    Do you know what I'm missing?

    Thanks

    blocked 
    opened by MGCal 7
Owner
Datapane
Create and share interactive reports from Python
Datapane
Create HTML profiling reports from pandas DataFrame objects

Pandas Profiling Documentation | Slack | Stack Overflow Generates profile reports from a pandas DataFrame. The pandas df.describe() function is great

null 10k Jan 1, 2023
Create HTML profiling reports from pandas DataFrame objects

Pandas Profiling Documentation | Slack | Stack Overflow Generates profile reports from a pandas DataFrame. The pandas df.describe() function is great

null 6.8k Feb 18, 2021
Data Visualization Guide for Presentations, Reports, and Dashboards

This is a highly practical and example-based guide on visually representing data in reports and dashboards.

Anton Zhiyanov 395 Dec 29, 2022
Data aggregated from the reports found at the MCPS COVID Dashboard into a set of visualizations.

Montgomery County Public Schools COVID-19 Visualizer Contents About this project Data Support this project About this project Data All data we use can

James 3 Jan 19, 2022
Python scripts to manage Chia plots and drive space, providing full reports. Also monitors the number of chia coins you have.

Chia Plot, Drive Manager & Coin Monitor (V0.5 - April 20th, 2021) Multi Server Chia Plot and Drive Management Solution Be sure to ⭐ my repo so you can

null 338 Nov 25, 2022
Debugging, monitoring and visualization for Python Machine Learning and Data Science

Welcome to TensorWatch TensorWatch is a debugging and visualization tool designed for data science, deep learning and reinforcement learning from Micr

Microsoft 3.3k Dec 27, 2022
These data visualizations were created for my introductory computer science course using Python

Homework 2: Matplotlib and Data Visualization Overview These data visualizations were created for my introductory computer science course using Python

Sophia Huang 12 Oct 20, 2022
Script to create an animated data visualisation for categorical timeseries data - GIF choropleth map with annotations.

choropleth_ldn Simple script to create a chloropleth map of London with categorical timeseries data. The script in main.py creates a gif of the most f

null 1 Oct 7, 2021
Python library that makes it easy for data scientists to create charts.

Chartify Chartify is a Python library that makes it easy for data scientists to create charts. Why use Chartify? Consistent input data format: Spend l

Spotify 3.2k Jan 4, 2023
Python library that makes it easy for data scientists to create charts.

Chartify Chartify is a Python library that makes it easy for data scientists to create charts. Why use Chartify? Consistent input data format: Spend l

Spotify 2.8k Feb 18, 2021
Python library that makes it easy for data scientists to create charts.

Chartify Chartify is a Python library that makes it easy for data scientists to create charts. Why use Chartify? Consistent input data format: Spend l

Spotify 3.2k Jan 1, 2023
Using SQLite within Python to create database and analyze Starcraft 2 units data (Pandas also used)

SQLite python Starcraft 2 English This project shows the usage of SQLite with python. To create, modify and communicate with the SQLite database from

null 1 Dec 30, 2021
Create artistic visualisations with your exercise data (Python version)

strava_py Create artistic visualisations with your exercise data (Python version). This is a port of the R strava package to Python. Examples Facets A

Marcus Volz 53 Dec 28, 2022
Pydrawer: The Python package for visualizing curves and linear transformations in a super simple way

pydrawer ?? The Python package for visualizing curves and linear transformations in a super simple way. ✏️ Installation Install pydrawer package with

Dylan Tintenfich 56 Dec 30, 2022
Curvipy - The Python package for visualizing curves and linear transformations in a super simple way

Curvipy - The Python package for visualizing curves and linear transformations in a super simple way

Dylan Tintenfich 55 Dec 28, 2022
Graphing communities on Twitch.tv in a visually intuitive way

VisualizingTwitchCommunities This project maps communities of streamers on Twitch.tv based on shared viewership. The data is collected from the Twitch

Kiran Gershenfeld 312 Jan 7, 2023
PanGraphViewer -- show panenome graph in an easy way

PanGraphViewer -- show panenome graph in an easy way Table of Contents Versions and dependences Desktop-based panGraphViewer Library installation for

null 16 Dec 17, 2022
Eulera Dashboard is an easy and intuitive way to get a quick feel of what’s happening on the world’s market.

an easy and intuitive way to get a quick feel of what’s happening on the world’s market ! Eulera dashboard is a tool allows you to monitor historical

Salah Eddine LABIAD 4 Nov 25, 2022
Process dataframe in a easily way.

Popanda Written by Shengxuan Wang at OSU. Used for processing dataframe, especially for machine learning. The name is from "Po" in the movie Kung Fu P

ShawnWang 1 Dec 24, 2021