Skip to main content

pyshewhart - Statistical Process Control Charts

Statistical process control charts (also known as "Shewhart charts" after Walter A. Shewhart) are widely used in manufacturing and industry as a quality-control tool.

The aim of this project is to provide an easy-to-use Python module for generating the following types of control charts:

  • X̅ and R
  • X̅ and S
  • Cumulative Sum (CUSUM)
  • P-attribute

In addition to checking the data against the standard 3σ control limits, it can also be evaluated against the well-known "Western Electric rule set" to detect additional statistical anomalies:


Usage

As a Python library:

An X̅ and R (mean and range) chart can be generated as simply as:

import random
import pyshewhart

measurements = [random.random() for _ in range(200)]
pyshewhart.XbarR(measurements)

If you have time information, you can also provide that. Supported time types include:

  • datetime
  • timedelta
  • various string formats (as supported by dateutil.parser.parse)
  • Unix timestamps
  • elapsed seconds (int or float)
seconds = range(200)
pyshewhart.XbarR(seconds, measurements)

Notice that now the plot shows both sample numbers and elapsed seconds.


Console Script:

Given a CSV file field_strengths_nT.csv containing timeseries and measurement data:

2022-10-12, 59194.401
2022-10-13, 59176.972
2022-10-14, 59179.485
2022-10-15, 59189.235
      ...
      ...
2023-10-08, 59196.725
2023-10-09, 59194.435
2023-10-10, 59187.456
2023-10-11, 59196.135

we can generate an X̅ and S (mean and standard deviation) plot with the following shell command:

$ pyshewhart field_strengths_nT.csv xbar-s 7 --units "nT" --title "Field Strength"

Examples

A few other examples can be found in the examples/ directory.

Several of these are recreated from a well-known textbook titled Managing Quality: Integrating the Supply Chain by S. Thomas Foster, including this X̅ and R chart:

Also a P-attribute chart:

The following shows the capabilities of a CUSUM chart to detect small amounts of drift.

First we see normal data:

And here we see the chart detecting a small amount of simulated drift:

Download files

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

Source Distribution

pyshewhart-1.1.0.tar.gz (25.0 kB view details)

Uploaded Source

Built Distribution

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

pyshewhart-1.1.0-py3-none-any.whl (23.2 kB view details)

Uploaded Python 3

File details

Details for the file pyshewhart-1.1.0.tar.gz.

File metadata

  • Download URL: pyshewhart-1.1.0.tar.gz
  • Upload date:
  • Size: 25.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.11.8 {"installer":{"name":"uv","version":"0.11.8","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"26.04","id":"resolute","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

File hashes

Hashes for pyshewhart-1.1.0.tar.gz
Algorithm Hash digest
SHA256 216ded68e80ee6a34d57a77aed0bad9567e3db7a555b2580f84ff5c1c5e3ddfc
MD5 3941e64d3e7a4ba49e1b2b0ed7ae0e9e
BLAKE2b-256 034ebb3846b1908dc95e79b2706d69aad262bb1d2dd37b2d1e210c4208a2aaf7

See more details on using hashes here.

File details

Details for the file pyshewhart-1.1.0-py3-none-any.whl.

File metadata

  • Download URL: pyshewhart-1.1.0-py3-none-any.whl
  • Upload date:
  • Size: 23.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.11.8 {"installer":{"name":"uv","version":"0.11.8","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"26.04","id":"resolute","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

File hashes

Hashes for pyshewhart-1.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 3308acfc848b9ba9621c6946c6bfa79b90989c0e8ba50f73bcb67fb018271b86
MD5 d04798e05f7a9a84a7a01f6694eb6c38
BLAKE2b-256 5900af52549c8225bc24f6659636da758b8d9ea8159b0c07310d80ab3d908952

See more details on using hashes here.

Release history Release notifications | RSS feed

This release

1.1.0 This release

2 files

1.0.1

1 file

1.0.0

1 file

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page