Publication-ready plots
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
For interactive examples, check out the examples.ipynb notebook.
pip install publiplotsOr if you are using uv for Python environment management:
uv pip install publiplotsgit clone https://github.com/jorgebotas/publiplots.git
cd publiplots
pip install -e .If you're using uv for Python environment management and want to use the package in Jupyter notebooks:
# Clone the repository
git clone https://github.com/jorgebotas/publiplots.git
cd publiplots
# Create a new uv environment with Python 3.11 (or your preferred version)
uv venv --python 3.11
# Activate the environment
source .venv/bin/activate # On Linux/macOS
# or
.venv\Scripts\activate # On Windows
# Install the package in editable mode with all dependencies
uv pip install -e .
# Install ipykernel to make the environment available in Jupyter
uv pip install ipykernel
# Register the environment as a Jupyter kernel
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 ppimport publiplots as pp
import pandas as pd
# Apply publication style globally
pp.set_publication_style()
# Create a scatter plot
fig, ax = pp.scatterplot(
data=df,
x='measurement_a',
y='measurement_b',
hue='condition',
palette=pp.color_palette('pastel', n_colors=3)
)
# Save with publication-ready settings
pp.savefig(fig, 'figure.pdf')Contributions are welcome! Please feel free to submit issues or pull requests.
If you use PubliPlots in your research, please cite:
Botas, J. (2025). PubliPlots: Publication-ready plotting for Python.
GitHub: https://github.com/jorgebotas/publiplots
MIT License - see LICENSE file for details.
Jorge Botas (@jorgebotas)
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



