Skip to main content

evaplot

An up-to-date and slimmed down library for opinionated plotting styles with seaborn and matplotlib.

Installation

pip install evaplot

Quick Start

import evaplot
import seaborn as sns
import matplotlib.pyplot as plt

# Apply a style (downloads fonts on first use)
evaplot.set_style("evaplot_rc")

# Use seaborn/matplotlib as usual
fig, ax = plt.subplots()
sns.barplot(data=my_data, x="category", y="value", ax=ax)
plt.show()

Styles

evaplot ships six styles, each using a different Google Font (downloaded automatically on first import):

Style Font
evaplot_rc Roboto Condensed
evaplot_fsc Fira Sans Condensed
evaplot_j Jost
evaplot_m Montserrat
evaplot_sg Space Grotesk
evaplot_tw Titillium Web

Gallery

evaplot_rc — Roboto Condensed

evaplot_rc style example

Other styles

evaplot_fsc — Fira Sans Condensed

evaplot_fsc style example

evaplot_j — Jost

evaplot_j style example

evaplot_m — Montserrat

evaplot_m style example

evaplot_sg — Space Grotesk

evaplot_sg style example

evaplot_tw — Titillium Web

evaplot_tw style example

Helper Functions

set_cat_palette

Sets the categorical color palette based on the number of categories. Uses dark2 for n ≤ 8 and vivid for larger sets. Returns the full palette as a list of hex strings you can reuse directly for annotations, custom patches, or other matplotlib elements.

colors = evaplot.set_cat_palette(n=5)
# colors → ["#1b9e77", "#d95f02", ...]

# Annotate each bar with its hex color
for i, bar in enumerate(ax.patches):
    ax.text(
        bar.get_x() + bar.get_width() / 2,
        bar.get_height(),
        colors[i],
        ha="center", va="bottom",
        color=colors[i], fontsize=8,
    )

set_cat_palette demo


rotate_xticklabels

Rotates x-axis tick labels to prevent overlap on busy categorical axes. Works on individual Axes objects and on every panel of a FacetGrid by iterating g.axes.flat.

# single axes
evaplot.rotate_xticklabels(ax, rotation=45)

# every panel in a FacetGrid
for ax in g.axes.flat:
    evaplot.rotate_xticklabels(ax, rotation=45)

rotate_xticklabels demo


move_legend

Moves a seaborn legend with sensible bottom-centered defaults.

evaplot.move_legend(ax_or_facetgrid, bbox_to_anchor=(0.5, -0.15), loc="upper center", ncol=3)

move_legend demo


adjust_layout

Adjusts subplot spacing and applies tight_layout in one call. Pass g.fig for a seaborn FacetGrid, or omit fig to operate on the current figure.

evaplot.adjust_layout(fig=fig, hspace=0.35, wspace=0.3)

adjust_layout demo


set_facet_col_titles

Simplifies FacetGrid column titles using a template string. By default strips the verbose "col = value" prefix.

evaplot.set_facet_col_titles(g, "{col_name}")
Before After
set_facet_col_titles before set_facet_col_titles after

API Reference

Function Description
set_style(style, n) Apply an evaplot style and categorical palette
set_cat_palette(n) Set categorical palette (dark2 for n ≤ 8, vivid otherwise); returns hex color list
rotate_xticklabels(ax, rotation, ha) Rotate x-axis tick labels
move_legend(obj, bbox_to_anchor, loc, ncol, ...) Move a seaborn legend with opinionated defaults
adjust_layout(fig, hspace, wspace, bottom, rect) Adjust subplot spacing and apply tight_layout
set_facet_col_titles(g, template) Set FacetGrid column title template
show_installed_fonts() List font families in evaplot's font cache
update_matplotlib_fonts() Register all cached fonts with matplotlib
download_googlefont(font, add_to_cache) Download a Google Font to the cache

Credits

evaplot builds on opinionated by Maximilian Noichl.

Noichl, M. (2023). Opinionated: Simple, Clean Stylesheets for Plotting with Matplotlib and Seaborn (Version 0.0.2.8) [Computer software]. https://doi.org/10.5281/zenodo.8329780

License

MPLv2 License

Metadata

Release files for evaplot 0.1.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 evaplot 0.1.1
File Size Uploaded
evaplot-0.1.1.tar.gz 3.3 MB Details

Built distribution (wheel)

Table of built distributions (wheels) for evaplot 0.1.1
File Interpreter ABI Platform
evaplot-0.1.1-py3-none-any.whl Python 3 none any Details

Total release size: 3.8 MB

Release files / evaplot-0.1.1.tar.gz

Download URL evaplot-0.1.1.tar.gz
Size 3.3 MB
Tags Source
SHA-256 checksum
How to use checksums
1c8c07e57e450dade197ebc0c24e2b488b6c7c4805d406c051d35afb5a44d33f
BLAKE2b-256 checksum
How to use checksums
75e907c52cfebba399093101b8d4a6780d40dc4fd9bd6bc8905dd6ffb24d304d
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 19, 2026.

Transparency log

Release files / evaplot-0.1.1-py3-none-any.whl

Download URL evaplot-0.1.1-py3-none-any.whl
Size 447.2 kB
Tags Python 3
SHA-256 checksum
How to use checksums
d39ec26edef5496d9c5d3ff186e6788333ebad9ee64879b4221783e20c8c4d85
BLAKE2b-256 checksum
How to use checksums
ee13231870fc765f649bfed9fc03babe01ff1343d9f773b484540a189cc6ec40
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 19, 2026.

Transparency log

Release history Release notifications | RSS feed

This release

0.1.1 This release

2 release files

0.1.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