Skip to main content

plotting_utils

PyPI Python Tests License: MIT

Elegant wrappers around matplotlib and seaborn, for scientific plotting that stays consistent across figures.

Installation

pip install ac-plotting-ut

Note on the package name. This project was previously published on PyPI as plotting_utils. From v0.2.0 it is distributed as ac-plotting-ut. The import name is unchanged — import plotting_utils as plu keeps working. The old plotting_utils distribution is no longer maintained.

Quick Start

import matplotlib.pyplot as plt
import pandas as pd
import plotting_utils as plu

# Journal-style rcParams
plu.set_rcParams()

df = pd.DataFrame({
    'x': [1, 2, 3, 4],
    'y': [2, 4, 5, 8],
    'group': ['a', 'a', 'b', 'b'],
})

fig, ax = plt.subplots(figsize=(6, 4))
plu.scatter(df, 'x', 'y', by='group', ax=ax)
plu.format_ax(ax, xlabel='X values', ylabel='Y values', reduced_spines=True)

plu.save_best_pdf_quality(fig, figsize=(6, 4), path='.', name='my_plot.pdf')

Every plotting function takes a pd.DataFrame plus column names, draws onto an ax you provide, and returns that ax — so they compose freely with plain matplotlib.

API

🎨 Colors

Function Purpose
create_palette() Build a {category: color} mapping from a DataFrame column
ten_godisnot, darjeeling, fantastic_fox Ready-made qualitative palettes

📊 Plots

Function Purpose
scatter() Scatter, coloured/sized by categorical or continuous columns
dist() Kernel density distributions, optionally split by group
counts_plot() Category frequencies
bar(), box(), strip(), violin() Categorical comparisons, optionally grouped by by
bb_plot() Stacked composition (crosstab) plot
plot_heatmap() Heatmap with optional row/column clustering
dotplot() Dotplot with size and colour encodings
volcano() Volcano plot with automatic label placement
stem_plot(), rank_plot() Ranked-value displays

🛠 Axis decoration and utilities

Function Purpose
set_rcParams() Apply journal-style matplotlib defaults
format_ax() Labels, ticks, rotation, log scale, reduced spines
add_legend(), add_cbar() Legends and colorbars from a palette or array
add_wilcox() Statistical annotations via statannotations
order_from_index() Ordering helper for matrix plots
save_best_pdf_quality() High-DPI PDF export
Timer, run_command, make_folder, update_params Small helpers

Requirements

Python 3.10+. Dependencies (numpy, pandas, scipy, matplotlib, seaborn, scikit-learn, joblib, pillow, statannotations, textalloc) are installed automatically.

Tested on Linux and macOS against Python 3.10, 3.11 and 3.12.

Development

git clone https://github.com/andrecossa5/plotting_utils.git
cd plotting_utils
pip install -e ".[test]"
pytest

Release History

0.2.1

  • Fixed bar() silently ignoring categorical_cmap: an unreachable branch meant an explicit palette was never applied and bars rendered in seaborn's default colour
  • bar() no longer needs an explicit categorical_cmap=None when by is unset
  • Replaced seaborn's deprecated palette-without-hue usage, removed in seaborn 0.14
  • Added tests asserting rendered colours, not just that a call succeeds

0.2.0

  • Renamed the PyPI distribution to ac-plotting-ut; import name unchanged
  • Modern pyproject.toml packaging (hatchling); setup.py removed
  • Declared previously-missing dependencies: numpy, pandas, scipy, pillow
  • Requires Python 3.10+; verified against numpy 2.5, pandas 3.0, matplotlib 3.11, seaborn 0.13
  • Added a test suite (85 tests) and CI across Linux/macOS on Python 3.10–3.12
  • Automated PyPI releases via Trusted Publishing
  • Fixed volcano() raising ValueError when called with its own default ylim
  • Fixed volcano() and rank_plot() label placement failing on non-integer indices
  • Fixed rank_plot() passing an invalid positional argument to ax.scatter
  • Fixed dotplot and rank_plot being absent from __all__
  • violin() no longer needs an explicit categorical_cmap=None when by is unset

0.1.5

  • Last release under the plotting_utils distribution name

0.1.4 (2025-09-11)

  • Enhanced README with comprehensive documentation
  • Added proper package metadata (long_description, author, classifiers)
  • Improved PyPI package presentation

0.1.3

  • Previous stable release

License

MIT — see LICENSE.

Metadata

Release files for ac-plotting-ut 0.2.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for ac-plotting-ut 0.2.1
File Size Uploaded
ac_plotting_ut-0.2.1.tar.gz 18.0 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for ac-plotting-ut 0.2.1
File Interpreter ABI Platform
ac_plotting_ut-0.2.1-py3-none-any.whl Python 3 none any Details

Total release size: 33.8 kB

Release files / ac_plotting_ut-0.2.1.tar.gz

Download URL ac_plotting_ut-0.2.1.tar.gz
Size 18.0 kB
Tags Source
SHA-256 checksum
How to use checksums
ed1da3a9044d58b634f71d4112d8d12c0a6dedc51d6eaebab9f3dc9bb252abae
BLAKE2b-256 checksum
How to use checksums
ef6985672d15f4442f16b5b3d42fcd5c162c76e65c469c57812d99b2c7d7b6eb
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

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.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Aug 5, 2026.

Transparency log

Release files / ac_plotting_ut-0.2.1-py3-none-any.whl

Download URL ac_plotting_ut-0.2.1-py3-none-any.whl
Size 15.8 kB
Tags Python 3
SHA-256 checksum
How to use checksums
24a293e099374987171a31ffa3d7c610f741148c9722dc6926c8a7343f8dfed1
BLAKE2b-256 checksum
How to use checksums
44fc820b08a8015be1028aeec93ae5249a4e394987c4fdad85a7c98663992c88
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

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.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Aug 5, 2026.

Transparency log

Release history Release notifications | RSS feed

This release

0.2.1 This release

2 release files

0.2.0

2 release files

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