Skip to content

Latest commit

 

History

History
78 lines (54 loc) · 2.94 KB

File metadata and controls

78 lines (54 loc) · 2.94 KB

physics-plot

PyPI - Version PyPI - Downloads

physics-plot is essentially a zero dependency python package shipping a Matplotlib style sheet — pp_base.mplstyle to create publication-quality plots with minimal effort. In addition, a few optional helper classes are provided.

Features

  • Matplotlib style sheet — physics_plot.pp_base enforces serif fonts, LaTeX math, minimalist grids, and high-resolution exports out of the box.
  • Legend utilities — physics_plot.Handles makes it easy to build custom legend entries for artists (e.g., violin plots) that don’t expose a label argument.

Installation

pip install physics-plot

Quick Start

physics-plot can be installed via pip:

pip install physics-plot

There are basically two ways to use the physics-plot stylesheet. You can set it globally at the start of your script/notebook:

import matplotlib.pyplot as plt

plt.style.use("physics_plot.pp_base")

# ======================= #
# Your plotting code here #
# ======================= #

Or you can apply it to individual figures using a context manager:

import matplotlib.pyplot as plt

with plt.style.context("physics_plot.pp_base"):
    # ======================= #
    # Your plotting code here #
    # ======================= #

Examples

  • Bode plot (examples/bode-plot.py) generates a two-panel magnitude/phase plot for a first-order low-pass filter.

    Bode plot

  • Violin plot (examples/violin-plot.ipynb) demonstrates how to pair Handles with Axes.violinplot so the legend of the violin plot can be created, which is absent in Matplotlib.

    Violin plot

Feel free to start from either example when styling your own figures.

Development

  • Coming soon

License

This project is licensed under the MIT license.

Third-Party Licenses

This project includes or adapts files from:

  • SciencePlots (MIT License) Copyright (c) 2018 John Garrett
  • Matplotlib (BSD-compatible license) Copyright (c) 2012– Matplotlib Development Team
  • Seaborn (BSD 3-Clause License) Copyright (c) 2012–2023, Michael L. Waskom