Skip to main content

Label lines in matplotlib.

Project description

matplotlib-label-lines

Build status Supported Python Versions PyPI codecov

Easily label line(s) using matplotlib.

The code is heavily based on http://stackoverflow.com/questions/16992038/inline-labels-in-matplotlib (original code from NauticalMile).

Install

Just do:

pip install matplotlib-label-lines

You can try it online on binder Binder, get some inspiration from the example or from the following script:

import numpy as np
from matplotlib import pyplot as plt
from scipy.stats import chi2, loglaplace

from labellines import labelLine, labelLines

X = np.linspace(0, 1, 500)
A = [1, 2, 5, 10, 20]
funcs = [np.arctan, np.sin, loglaplace(4).pdf, chi2(5).pdf]

fig, axes = plt.subplots(ncols=2, nrows=3, constrained_layout=True, figsize=(8, 8))

axes = axes.flatten()

ax = axes[0]
for a in A:
    ax.plot(X, np.arctan(a * X), label=str(a))

labelLines(ax.get_lines(), zorder=2.5)

ax = axes[1]
for a in A:
    ax.plot(X, np.sin(a * X), label=str(a))

labelLines(ax.get_lines(), align=False, fontsize=14)

ax = axes[2]
for a in A:
    ax.plot(X, loglaplace(4).pdf(a * X), label=str(a))

xvals = [0.8, 0.55, 0.22, 0.104, 0.045]
labelLines(ax.get_lines(), align=False, xvals=xvals, color="k")

ax = axes[3]
for a in A:
    ax.plot(X, chi2(5).pdf(a * X), label=str(a))

lines = ax.get_lines()
l1 = lines[-1]
labelLine(
    l1,
    0.6,
    label=r"$Re=${}".format(l1.get_label()),
    ha="left",
    va="bottom",
    align=False,
    backgroundcolor="none",
)
labelLines(lines[:-1], yoffsets=0.01, align=False, backgroundcolor="none")

# labelLines also supports log-scaled x-axes
ax = axes[4]
for a in A:
    ax.semilogx(X, np.arctan(5 * a * X), label=str(a))

labelLines(ax.get_lines(), zorder=2.5)

ax = axes[5]
for a in A:
    ax.semilogx(X, chi2(5).pdf(a * X), label=str(a))

labelLines(ax.get_lines(), xvals=(0.1, 1), zorder=2.5)

fig.show()

Example

Citing

If you're using this package for research purposes, consider citing the Zenodo entry (https://zenodo.org/record/7428071).

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

matplotlib_label_lines-0.7.0.tar.gz (13.2 kB view details)

Uploaded Source

Built Distribution

matplotlib_label_lines-0.7.0-py3-none-any.whl (12.8 kB view details)

Uploaded Python 3

File details

Details for the file matplotlib_label_lines-0.7.0.tar.gz.

File metadata

File hashes

Hashes for matplotlib_label_lines-0.7.0.tar.gz
Algorithm Hash digest
SHA256 db2ba7afe34a733f7c02d29b16217069cf412c12ce6a452991adb71b9c4fd16f
MD5 bc37a945b3b32c2ebe0df992a65c91db
BLAKE2b-256 f1d0e6f49a6ef20f98aaa613df30f335ea7b4e2933f6d1f459b97e6cf364b85c

See more details on using hashes here.

File details

Details for the file matplotlib_label_lines-0.7.0-py3-none-any.whl.

File metadata

File hashes

Hashes for matplotlib_label_lines-0.7.0-py3-none-any.whl
Algorithm Hash digest
SHA256 31f9ea9de749152d5ef2a1b5e400cba965ec4574bb8a32c30361dd32dd2bfd95
MD5 1caac12c9ffd11b57faeecffd650c0ff
BLAKE2b-256 3c6baa49d85637f6c13c48756d8e75ae00a2e355b6f5a55f0964fa996a7c49d0

See more details on using hashes here.

Supported by

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