Publication-ready figures for Matplotlib, Seaborn, Plotly, and Altair
Project description
Sane-Figs
Publication-ready figures for Matplotlib, Seaborn, Plotly, and Altair.
Overview
Sane-Figs is a Python package that automatically applies publication-ready styling to figures generated with popular Python visualization libraries. It solves the common problem of figures having text that is too small for articles and presentations.
Features
- Automatic Styling: Apply publication-ready defaults with a single function call
- Multiple Libraries: Support for Matplotlib, Seaborn, Plotly, and Altair
- Version-Aware: Automatically detects library versions and adapts to API changes
- Two Usage Modes: Global setup or context manager for scoped styling
- Presets: Built-in presets for articles and presentations
- Colorways: Publication-ready color palettes (default, nature, vibrant, pastel, colorblind-safe)
- Watermarks: Text and image watermark support
Installation
pip install sane-figs
For full library support:
pip install sane-figs[all]
Or install with specific libraries:
pip install sane-figs[matplotlib,seaborn]
Quick Start
Global Setup
import sane_figs
import matplotlib.pyplot as plt
# Apply publication defaults globally
sane_figs.setup(mode='article')
# Your existing code works as-is
plt.plot([1, 2, 3], [1, 4, 9])
plt.title('My Figure')
plt.xlabel('X Axis')
plt.ylabel('Y Axis')
plt.savefig('figure.png', dpi=300)
Context Manager
import sane_figs
import matplotlib.pyplot as plt
# Scoped styling
with sane_figs.publication_style(mode='article'):
plt.plot([1, 2, 3], [1, 4, 9])
plt.title('My Figure')
plt.savefig('figure.png')
# Styling resets after context
plt.plot([1, 2, 3], [1, 4, 9]) # Back to default styling
With Colorways
import sane_figs
import matplotlib.pyplot as plt
# Apply colorway
sane_figs.setup(mode='article', colorway='nature')
# List available colorways
print(sane_figs.list_colorways())
# ['default', 'nature', 'vibrant', 'pastel', 'colorblind-safe']
With Watermarks
import sane_figs
import matplotlib.pyplot as plt
# Text watermark
sane_figs.setup(mode='article', watermark='© 2025 My Lab')
# Image watermark
sane_figs.setup(
mode='article',
watermark=sane_figs.create_image_watermark('logo.png', opacity=0.2)
)
Presets
Article Mode
Optimized for print publication:
- Figure size: (6.4, 4.8) inches
- DPI: 300
- Title: 14pt
- Axis labels: 12pt
- Legend: 10pt
- Tick labels: 10pt
Presentation Mode
Optimized for slides:
- Figure size: (10, 7.5) inches
- DPI: 150
- Title: 24pt
- Axis labels: 20pt
- Legend: 16pt
- Tick labels: 16pt
Colorways
- default: Publication-ready palette optimized for print
- nature: Earth tones inspired by nature
- vibrant: High contrast colors for presentations
- pastel: Soft, professional colors
- colorblind-safe: Designed for colorblind accessibility
API Reference
Main Functions
setup(mode='article', libraries=None, colorway=None, watermark=None)- Apply publication defaults globallypublication_style(mode='article', libraries=None, colorway=None, watermark=None)- Context manager for scoped stylinglist_colorways()- List available colorwayscreate_text_watermark(text, **kwargs)- Create a text watermark configurationcreate_image_watermark(image_path, **kwargs)- Create an image watermark configuration
Per-Library Functions
setup_matplotlib(mode='article', colorway=None, watermark=None)setup_seaborn(mode='article', colorway=None, watermark=None)setup_plotly(mode='article', colorway=None, watermark=None)setup_altair(mode='article', colorway=None, watermark=None)
License
MIT License - see LICENSE file for details.
Contributing
Contributions are welcome! Please feel free to submit a Pull Request.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file sane_figs-0.1.1.tar.gz.
File metadata
- Download URL: sane_figs-0.1.1.tar.gz
- Upload date:
- Size: 42.5 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
1d9887b092914db34f9b3efdf5aa5dad89e605bd007e9bce295489ca3d32de37
|
|
| MD5 |
1cd1159353b77b49fddf2d38bb4f0247
|
|
| BLAKE2b-256 |
5e65d468f2553783e66442b0a99348d28530caa188bc87a769356bac437cc85b
|
File details
Details for the file sane_figs-0.1.1-py3-none-any.whl.
File metadata
- Download URL: sane_figs-0.1.1-py3-none-any.whl
- Upload date:
- Size: 49.9 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
c87a07b024b220f809c4795642da90e2e68db42ca7c9102796776badf7b91a2f
|
|
| MD5 |
2aadfcf95cef2d8fa3aa12d8dc59e265
|
|
| BLAKE2b-256 |
4371e5bd1408bb4a7ad36c969baf3c8d087214ab4daf3012b20098710cb4194a
|