SciencePlots
Format Matplotlib for scientific plotting
What it is and what it does
SciencePlots is a Matplotlib style package that registers pre-configured visual themes optimized for scientific publication. When imported, it adds styles like 'science', 'ieee', and 'nature' that you apply via `plt.style.use()` to automatically adjust figure dimensions, fonts, colors, and line weights to match journal or presentation standards.
The package is designed to eliminate manual formatting work when preparing figures for academic papers. It supports cascading styles (combining 'science' with 'ieee' or 'nature' for journal-specific tweaks), includes multiple color cycles (some colorblind-safe), and provides localized support for CJK fonts and other languages. The main constraint is that LaTeX must be installed separately for full functionality, and the import statement must appear before any style application.
Use it for:
- Format plots for IEEE papers by combining 'science' and 'ieee' styles to match column width and font requirements
- Prepare figures for Nature or other journals using journal-specific style combinations
- Create consistent, publication-ready plots in Jupyter notebooks with the 'notebook' style variant
- Apply colorblind-safe color cycles to ensure accessibility across different audiences
- Generate multilingual scientific figures using CJK font support for Chinese, Japanese, or Korean text
Worth the install?
AI-flagged interpretation of the facts on this page — verify before relying
Provides a collection of Matplotlib style sheets designed to format scientific figures for papers, presentations, and theses with publication-ready appearance.
Yes. SciencePlots is worth installing if you regularly produce scientific figures for publication. It eliminates repetitive manual formatting, is actively maintained, has no security vulnerabilities, carries a permissive license, and depends only on matplotlib. The only gotcha is the LaTeX requirement, which is standard in academic workflows anyway.
Install
scienceplots on PyPI
pip
pip install scienceplotsuv
uv add scienceplotspoetry
poetry add scienceplotsInstalling SciencePlots
Before you install
Low friction install with a single runtime dependency on matplotlib. The project is actively maintained with recent releases and high community engagement (9127 GitHub stars), indicating stable, well-supported code.
License in practice
MIT license permits free use, modification, and distribution with minimal restrictions, making it suitable for both academic and commercial projects.
Quickstart
pip install scienceplots
import matplotlib.pyplot as plt
import scienceplots
plt.style.use('science')
plt.plot([1, 2, 3])
plt.show()
LaTeX must be installed separately on your system for full style functionality.
Verify before relying
- Whether LaTeX installation is truly mandatory or only needed for certain styles
- Performance impact of importing scienceplots on matplotlib initialization
- Compatibility with specific matplotlib versions beyond the general Python 3.8+ requirement
Package facts
| License | MIT (permissive) |
| Python support | supports the current Python release (>=3.8) |
| Install friction | low — pure-Python wheel |
| Runtime dependencies | 1 — matplotlib |
| Maintenance | actively maintained — 52 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 274,693/month — #8,187 on PyPI (30-day window, as of 2026-08-14) |
| Known vulnerabilities | none known (OSV.dev, checked 2026-08-14) |
Evidence: scienceplots-2.2.2-py3-none-any.whl
Keywords: matplotlib-style-sheets, matplotlib-figures, scientific-papers, thesis-template, matplotlib-styles, python
Tags
More Visualization packages
matplotlib creates static, animated, and…
permissive · top 1,000 on PyPI
contourpyContourPy calculates contours of 2D…
permissive · top 1,000 on PyPI
plotlyPlotly is an interactive, browser-based…
permissive · top 1,000 on PyPI
graphvizGenerates DOT language source code for graph…
permissive · top 1,000 on PyPI
streamlitStreamlit transforms Python scripts into…
permissive · top 1,000 on PyPI
leatherLeather is a lightweight Python charting…
permissive · top 1,000 on PyPI
lovelyplotsLovelyPlots provides matplotlib style sheets…
permissive · top 15,000 on PyPI
cyclerCycler provides composable style cycles for…
permissive · top 1,000 on PyPI
svgutilssvgutils lets you programmatically edit, scale,…
permissive · top 15,000 on PyPI
UpSetPlotUpSetPlot generates visualizations of set…
permissive · top 15,000 on PyPI
mplhepmplhep provides matplotlib styling and helper…
permissive · top 15,000 on PyPI
koreanize-matplotlibAutomatically configures matplotlib to display…
permissive · top 15,000 on PyPI
matplotlib-inlineEnables matplotlib figures to display inline…
permissive · top 1,000 on PyPI
japanize-matplotlibEnables matplotlib to display Japanese text in…
permissive · top 15,000 on PyPI
cmapcmap provides a collection of scientific…
permissive · top 15,000 on PyPI