corner.py
Make some beautiful corner plots.
- Corner plot /ˈkôrnər plät/ (noun):
An illustrative representation of different projections of samples in high dimensional spaces. It is awesome. I promise.
Built by Dan Foreman-Mackey and collaborators (see corner.__contributors__ for the most up to date list). Licensed under the 2-clause BSD license (see LICENSE).
Installation
Just run
pip install corner
to get the most recent stable version.
Usage
The main entry point is the corner.corner function. You’ll just use it like this:
import numpy as np
import corner
ndim, nsamples = 5, 10000
samples = np.random.randn(ndim * nsamples).reshape([nsamples, ndim])
figure = corner.corner(samples)
figure.savefig("corner.png")
With some other tweaks (see demo.py) you can get something that looks awesome like:
By default, data points are shown as grayscale points with contours. Contours are shown at 0.5, 1, 1.5, and 2 sigma.
For more usage examples, take a look at tests.py.
Documentation
All the options are documented in the docstrings for the corner and hist2d functions. These can be viewed in a Python shell using:
import corner print(corner.corner.__doc__)
or, in IPython using:
import corner corner.corner?
A note about “sigmas”
We are regularly asked about the “sigma” levels in the 2D histograms. These are not the 68%, etc. values that we’re used to for 1D distributions. In two dimensions, a Gaussian density is given by:
pdf(r) = exp(-(r/s)^2/2) / (2*pi*s^2)
The integral under this density is:
cdf(x) = Integral(r * exp(-(r/s)^2/2) / s^2, {r, 0, x})
= 1 - exp(-(x/s)^2/2)
This means that within “1-sigma”, the Gaussian contains 1-exp(-0.5) ~ 0.393 or 39.3% of the volume. Therefore the relevant 1-sigma levels for a 2D histogram of samples is 39% not 68%. If you must use 68% of the mass, use the levels keyword argument.
The “sigma-demo” notebook visually demonstrates the difference between these choices of levels.
Attribution
If you make use of this code, please cite it.
License
Copyright 2013, 2014 Dan Foreman-Mackey
corner.py is free software made available under the BSD License. For details see the LICENSE file.
Metadata
Release files for corner 1.0.3
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | Actions |
|---|---|---|---|---|
| corner-1.0.3.tar.gz | 10.1 kB | Without provenance | Details for corner-1.0.3.tar.gz |
Release files / corner-1.0.3.tar.gz
| Download URL | corner-1.0.3.tar.gz |
|---|---|
| Size | 10.1 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
8330a1f44ecf98ba6a74b866351758e4ee5d7b9264988165f36757429b4dc4e9
|
|
BLAKE2b-256 checksum How to use checksums |
e47d86823be87243a8f5b17c84509248b72e4d8b154d76a1490ce20d64505ae0
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
Security for corner 1.0.3
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.