Skip to main content

Pareto chart for python (similar to Matlab's, but much more flexible) - Fork from @tintrinh

Project description

@RogerioPradoJ paretochart - rogeriopradoj-paretochart - Fork from @tintrinh

Pareto chart for python 3 (similar to Matlab, but much more flexible) - Fork from @tintrinh.

Features

  • Data labels for the chart x-axis.
  • Fully customizable with unique arg and kwarg inputs:
  • Put the chart on arbitrary axes.

Examples

First, a simple import::

from paretochart.paretochart import pareto

Now, let's create the numeric data (no pre-sorting necessary)::

data = [21, 2, 10, 4, 16]

We can even assign x-axis labels (in the same order as the data)::

labels = ['tom', 'betty', 'alyson', 'john', 'bob']

For this example, we'll create 4 plots that show the customization capabilities::

import matplotlib.pyplot as plt

# create a grid of subplots
fig, axes = plt.subplots(2, 2)

The first plot will be the simplest usage, with just the data::

pareto(data, axes=axes[0, 0])
plt.title('Basic chart without labels', fontsize=10)

In the second plot, we'll add labels, put a cumulative limit at 0.75 (or 75%) and turn the cumulative line green::

pareto(data, labels, axes=axes[0, 1], limit=0.75, line_args=('g',))
plt.title('Data with labels, green cum. line, limit=0.75', fontsize=10)

In the third plot, we'll remove the cumulative line and limit line, make the bars green and resize them to a width of 0.5::

pareto(data, labels, cumplot=False, axes=axes[1, 0], data_kw={'width': 0.5,
    'color': 'g'})
plt.title('Data without cum. line, green bar width=0.5', fontsize=10)

In the fourth plot, let's put the cumulative limit at 95% and make that line yellow::

pareto(data, labels, limit=0.95, axes=axes[1, 1], limit_kw={'color': 'y'})
plt.title('Data trimmed at 95%, yellow limit line', fontsize=10)

And last, but not least, let's show the image::

fig.canvas.set_window_title('Pareto Plot Test Figure')
plt.show()

This should result in the following image (click here if the image doesn't show up):

pareto_plot_test_figure

Installation

Since this is really a single python file, you can simply go to the GitHub_ page, simply download paretochart.py and put it in a directory that python can find it.

Alternatively, the file can be installed using::

pip install --upgrade rogeriopradoj-paretochart

If you are using Python2, you can use original @tintrinh's project::

pip install --upgrade paretochart

Development and Publishing New Versions

Using knowledge from https://medium.com/@joel.barmettler/how-to-upload-your-python-package-to-pypi-65edc5fe9c56.

  • define next version number (try to follow semver 2
  • make the changes in codebase
  • update setup.py:
    • version
    • download_url
  • update README.md:
    • pareto_plot_test_figure url
  • commit, tag, and push to git central repo
  • create a source distribution, and validate it:
    • python setup.py sdist
    • twine check dist/*
  • upload the source to PyPi:
    • twine upload dist/*

Download files

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

Source Distribution

rogeriopradoj-paretochart-2.0.0.tar.gz (6.0 kB view details)

Uploaded Source

File details

Details for the file rogeriopradoj-paretochart-2.0.0.tar.gz.

File metadata

  • Download URL: rogeriopradoj-paretochart-2.0.0.tar.gz
  • Upload date:
  • Size: 6.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.13.0 pkginfo/1.4.2 requests/2.18.4 setuptools/39.1.0 requests-toolbelt/0.9.1 tqdm/4.32.1 CPython/3.6.5

File hashes

Hashes for rogeriopradoj-paretochart-2.0.0.tar.gz
Algorithm Hash digest
SHA256 e88f4c24a0e4cfa3c69001e22f510c731b5887a58b0b6f668ae4eb11c4a01c0e
MD5 92abfb837f0dd754cdba89123192231c
BLAKE2b-256 d058060b8fd07cdabf3d090df6f6f18f420a27601d183377d2f7012bfaf3465b

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