Skip to main content

graph-polisher is a library that helps you clean your plotly figures.. This library is inspired by the book Storytelling with Data by Cole Nussbaumer Knaflic (https://www.kobo.com/us/en/ebook/storytelling-with-data).

Project description

graph-polisher

PyPI version build status coverage report Code style: mypy PyPI - License

[[TOC]]

Graph polisher is a library that helps you clean your plotly figures. This library was inspired by the book "Storytelling with Data by Cole Nussbaumer Knaflic (https://www.kobo.com/us/en/ebook/storytelling-with-data).

Usage

To start our graph polishing, we will create a basic bar graph:

import pandas as pd
import plotly.express as px

report_data = [
    {'name': 'Time Sheets', 'exported': 394},
    {'name': 'Schedules', 'exported': 171},
    {'name': 'overtime', 'exported': 457},
    {'name': 'Time-off', 'exported': 93},
    {'name': 'Shift Requests', 'exported': 30},
]
df = pd.DataFrame(report_data)

fig = px.bar(df, title='Exported Reports', x='name', y='exported')

fig.show()

Raw Bar Plot

Cleaning the Graph

Next, we will remove all the unnecessary information from the graph. By removing unnecessary things from the graph, we will then be able to focus on important information that will help us drive the user to where we want them to focus on.

To remove all that default unnecessary information with graph-polisher do the following:

Remove grid lines and background

Grid lines usually compete with the information being shown. If you really think that you should include them, make them thin and grey so it doesn't call attention.

import graph_polisher

graph_polisher.remove_grids(figure=fig)
graph_polisher.remove_background(figure=fig) 

fig.show()

Bar No Grid Plot

Send to background

The dark colors (black text, bold text) of the graph also calls for attention. We can easily make them less attention grabbing by sending them to the background. Sending them to the background will set the text color to a more neutral color like grey.

graph_polisher.send_to_background(fig)

fig.show()

Send to backgroung

Notice the difference between the default bar graph and our new version.

Default Bar Plot No Distractions Bar Plot
Raw Bar Plot Send to backgroung

Now you have a graph that you can easily add intentional attention grabbing information so that your user is guided through the information you are trying to present.

Deploying pip library

Build the pip library package to deploy to pip:

python3 setup.py sdist bdist_wheel

Publish to pip. You can follow steps here

Note that you will need to install twine and register your pypi. Usually in the file ~/.pypirc

python3 -m twine upload --repository pypi dist/*

Installation

pip install graph-polisher

Testing

To test this project run:

pytest

Notebook Example (with unnotebook)

Prerequisite: https://www.docker.com/

You can use this to see how the library modifies the plots. We are using unnotebook to plot the examples.

  1. Build and push notebook image:
docker build . -t graph-polisher
  1. Run notebook
docker-compose up notebook

or

docker run --rm -it \
    -v /Users/rigo/Documents/Projects/notebooks/stock-predictions:/notebooks \
    -p 8899:8899 unclutterer
  1. Open http://localhost:8899/ and open the notebook you want to run.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

graph-polisher-1.0.2.tar.gz (4.9 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

graph_polisher-1.0.2-py3-none-any.whl (5.9 kB view details)

Uploaded Python 3

File details

Details for the file graph-polisher-1.0.2.tar.gz.

File metadata

  • Download URL: graph-polisher-1.0.2.tar.gz
  • Upload date:
  • Size: 4.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.1 importlib_metadata/4.4.0 pkginfo/1.7.0 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.61.0 CPython/3.8.10

File hashes

Hashes for graph-polisher-1.0.2.tar.gz
Algorithm Hash digest
SHA256 88fd9a33623538f0fa3ec303eba608525c824277f7a27cbaca8fd956c1c0bf2d
MD5 d2370b0c1db8ea5a0c52482e93816b0f
BLAKE2b-256 5a7c386b4defd107b48099bba1fce4a17c0d96133ad1c655b8cc52b5793afe55

See more details on using hashes here.

File details

Details for the file graph_polisher-1.0.2-py3-none-any.whl.

File metadata

  • Download URL: graph_polisher-1.0.2-py3-none-any.whl
  • Upload date:
  • Size: 5.9 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.1 importlib_metadata/4.4.0 pkginfo/1.7.0 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.61.0 CPython/3.8.10

File hashes

Hashes for graph_polisher-1.0.2-py3-none-any.whl
Algorithm Hash digest
SHA256 63319c8745ec467e0e303be646cc58e64bae96c0d7496d1ed28a48c6e3ae615b
MD5 3397be5b423f093f4ec9fe6bfe583edf
BLAKE2b-256 fde58129475ef884eb00423154b07a497c8cf075da3a484b7b09af7568748659

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page