PubliPlots
Publication-ready plots
Overview
PubliPlots is a Python visualization library that provides beautiful, publication-ready plots with a seaborn-like API. It focuses on:
- Beautiful defaults: Carefully designed pastel color palettes and styles
- Intuitive API: Follows seaborn conventions for ease of use
- Modular design: Compose complex visualizations from simple building blocks
- Highly configurable: Extensive customization while maintaining sensible defaults
- Publication-ready: Optimized for scientific publications and presentations
[!IMPORTANT]
Documentation: Full documentation is available at jorgebotas.github.io/publiplots
Gallery
For interactive examples, check out the examples.ipynb notebook.
Installation
From PyPI
pip install publiplots
Or if you are using uv for Python environment management:
uv pip install publiplots
From source (development)
git clone https://github.com/jorgebotas/publiplots.git
cd publiplots
pip install -e .
Development with uv and Jupyter
If you're using uv for Python environment management and want to use the package in Jupyter notebooks:
git clone https://github.com/jorgebotas/publiplots.git
cd publiplots
uv venv --python 3.11
source .venv/bin/activate
.venv\Scripts\activate
uv pip install -e .
uv pip install ipykernel
python -m ipykernel install --user --name=publiplots --display-name="Python (publiplots)"
Now you can select the "Python (publiplots)" kernel in Jupyter Lab or Jupyter Notebook and import publiplots:
import publiplots as pp
Quick Start
import publiplots as pp
import pandas as pd
pp.set_publication_style()
fig, ax = pp.scatterplot(
data=df,
x='measurement_a',
y='measurement_b',
hue='condition',
palette=pp.color_palette('pastel', n_colors=3)
)
pp.savefig(fig, 'figure.pdf')
Contributing
Contributions are welcome! Please feel free to submit issues or pull requests.
Citation
If you use PubliPlots in your research, please cite:
Botas, J. (2025). PubliPlots: Publication-ready plotting for Python.
GitHub: https://github.com/jorgebotas/publiplots
License
MIT License - see LICENSE file for details.
Author
Jorge Botas (@jorgebotas)
Acknowledgments
PubliPlots builds upon excellent work from the Python visualization community:
- ggvenn by Yan Linlin - The Venn diagram implementation (2-5 sets) is based on the geometry from this R package
- UpSetPlot by Joel Nothman - The UpSet plot implementation is inspired by concepts from this library (BSD-3-Clause license)
- matplotlib - The foundational plotting library that powers PubliPlots
- seaborn - Inspiration for API design and color palettes