Skip to main content

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

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 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 polisher

polisher.remove_grids(figure=fig)
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.

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

Shortcut for commands below:

poetry run task publish

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 polisher

Testing

To test this project run:

poetry run task test

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

polisher-2.0.4.tar.gz (8.1 kB view details)

Uploaded Source

Built Distribution

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

polisher-2.0.4-py3-none-any.whl (7.2 kB view details)

Uploaded Python 3

File details

Details for the file polisher-2.0.4.tar.gz.

File metadata

  • Download URL: polisher-2.0.4.tar.gz
  • Upload date:
  • Size: 8.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.10.4

File hashes

Hashes for polisher-2.0.4.tar.gz
Algorithm Hash digest
SHA256 68964b1dc1f0efc63ae49a3e70ae3b8310d394d84e71c50a94c7980ae8a3f076
MD5 686d891b37155ebe5a8f5d1082a80e06
BLAKE2b-256 9d6ec8d4533ac1f0519e6cfc70623ee44b3bfc1c3781aed6503f2f02e5ad86d7

See more details on using hashes here.

File details

Details for the file polisher-2.0.4-py3-none-any.whl.

File metadata

  • Download URL: polisher-2.0.4-py3-none-any.whl
  • Upload date:
  • Size: 7.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.10.4

File hashes

Hashes for polisher-2.0.4-py3-none-any.whl
Algorithm Hash digest
SHA256 561bccfda1b3cf85024e97b28793eff004ad18b0c6073fc74fa75b34fd45fbf8
MD5 a54023e77faae78033b6650dda3b43ff
BLAKE2b-256 8ca64a30d57206f0930e0d325cffcbf48c1695f62701f23b049bf3b8eee241d7

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