SciencePlots
Matplotlib styles for scientific plotting
Install / Use
/learn @garrettj403/SciencePlotsREADME
Science Plots
<p align="left"> <table> <tr> <td style="text-align: center;">PyPI version</td> <td style="text-align: center;"> <a href="https://badge.fury.io/py/SciencePlots"> <img src="https://badge.fury.io/py/SciencePlots.svg" alt="PyPI version" height="18"/> </a> </td> </tr> <tr> <td style="text-align: center;">conda-forge version</td> <td style="text-align: center;"> <a href="https://anaconda.org/conda-forge/scienceplots"> <img src="https://anaconda.org/conda-forge/scienceplots/badges/version.svg" alt="conda-forge version" height="18"/> </a> </td> </tr> <tr> <td style="text-align: center;">DOI</td> <td style="text-align: center;"> <a href="https://zenodo.org/badge/latestdoi/144605189"> <img src="https://zenodo.org/badge/144605189.svg" alt="DOI" height="18"/> </a> </td> </tr> </table> </p>Warning : As of version 2.0.0, you need to add
import scienceplotsbefore setting the style (plt.style.use('science')).
Matplotlib styles for scientific figures
This repo has Matplotlib styles to format your figures for scientific papers, presentations and theses.
<p align="center"> <img src="https://github.com/garrettj403/SciencePlots/raw/master/examples/figures/fig01a.jpg" width="500"> </p>You can find the full gallery of included styles here.
Getting Started
The easiest way to install SciencePlots is by using pip:
# to install the latest release (from PyPI)
pip install SciencePlots
# to install the latest release (using Conda)
conda install -c conda-forge scienceplots
# to install the latest commit (from GitHub)
pip install git+https://github.com/garrettj403/SciencePlots
# to clone and install from a local copy
git clone https://github.com/garrettj403/SciencePlots.git
cd SciencePlots
pip install -e .
From version v1.1.0 on, import scienceplots is needed on top of your scripts so Matplotlib can make use of the styles.
Notes:
- SciencePlots requires Latex (see Latex installation instructions).
- If you would like to use CJK fonts, you will need to install these font separately (see CJK font installation instructions).
Please see the FAQ for more information and troubleshooting.
Using the Styles
"science" is the primary style in this repo. Whenever you want to use it, simply add the following to the top of your python script:
import matplotlib.pyplot as plt
import scienceplots
plt.style.use('science')
You can also combine multiple styles together by:
plt.style.use(['science','ieee'])
In this case, the ieee style will override some of the parameters from the science style in order to configure the plot for IEEE papers (column width, fontsizes, etc.).
To use any of the styles temporarily, you can use:
with plt.style.context('science'):
plt.figure()
plt.plot(x, y)
plt.show()
Examples
The basic science style is shown below:
It can be cascaded with other styles to fine-tune the appearance. For example, the science + notebook styles (intended for Jupyter notebooks):
Please see the project Wiki for a full list of available styles.
Specific Styles for Academic Journals
The science + ieee styles for IEEE papers:
- IEEE requires figures to be readable when printed in black and white. The
ieeestyle also sets the figure width to fit within one column of an IEEE paper.
The science + nature styles for Nature articles:
- Nature recommends sans-serif fonts.
Other languages
SciencePlots currently supports:
Example: Traditional Chinese (science + no-latex + cjk-tc-font):
See the FAQ for information on installing CJK fonts.
Other color cycles
SciencePlots comes with a variety of different color cycles. For a full list, see the project Wiki. Two examples are shown below.
The bright color cycle (color blind safe):
The high-vis color cycle:
Paul Tol's discrete rainbow color sets are available as well, with the style identifier discrete-rainbow-<n>, where <n> is the number of unique colors. <n> ranges from 1 to 23 (inclusive). For example, discrete-rainbow-15:
Help and Contributing
Please feel free to contribute to the SciencePlots repo! For example, it would be good to add new styles for different journals and add new color cycles. Before starting a new style or making any changes, please create an issue through the GitHub issue tracker. That way we can discuss if the changes are necessary and the best approach.
If you need any help with SciencePlots, please first check the FAQ and search through the previous GitHub issues. If you can't find an answer, create a new issue through the GitHub issue tracker.
You can checkout Matplotlib's documentation for more information on plotting settings.
FAQ
You can find the FAQ in the project Wiki.
SciencePlots in Academic Papers
The following papers use SciencePlots:
-
C.-S. Li, S.-P. Ma, and T.-H. Lin, "FMSA: A Universal Microservice Architecture Based on FHIR Medical Informatics Standard," 2025 Second International Conference on Artificial Intelligence for Medicine, Health and Care (AIxMHC), pp. 42–49, Oct. 2025.
-
Keçeci, Mehmet. "Scalable Complexity: Mathematical Analysis and Potential for Physical Applications of the Keçeci Circle Fractal", 13 May 2025. https://doi.org/10.5281/zenodo.15396198. (Reference has been made to the module "SciencePlots".)
-
J. D. Garrett, C.-Y. E. Tong, L. Zeng, T.-J. Chen and M.-J. Wang, "A 345 GHz Sideband-Separating Receiver Prototype with Ultra-Wide Instantaneous Bandwidth," IEEE Trans. THz Sci. Technol., vol. 13, no. 3, pp. 237-245, Mar. 2023.
-
J. Garrett, B.-K. Tan, C. Chaumont, F. Boussaha, and G. Yassin, "A 230-GHz Endfire SIS Mixer With Near Quantum-Limited Performance," IEEE Microw. Wirel. Compon. Lett., Jul. 2022. (open access)
-
J. Garrett, and E. Tong, "Measuring Cryogenic Waveguide Loss in the Terahertz Regime," IEEE Trans. THz Sci. Technol., vol. 12, no. 3, pp. 293-299, May 2022.
-
Y. Liu, X. Liu, and Y. Sun, "QGrain: An open-source and easy-to-use software for the comprehensive analysis of grain size distributions", Sedimentary Geology, vol. 423, 105980, Aug. 2021.
-
M. Gasanov, et al., "A New Multi-objective Approach to Optimize Irrigation Using a Crop Simulation Model and Weather History" in Computational Science–ICCS 2021, Krakow, Poland, Jun. 2021, pp. 75-88. (open access)
-
J. Garrett, and E. Tong, "A Dispersion-Compensated Algorithm for the Analysis of Electromagnetic Waveguides," IEEE Signal Process. Lett.,
Related Skills
node-connect
325.6kDiagnose OpenClaw node connection and pairing failures for Android, iOS, and macOS companion apps
openai-image-gen
325.6kBatch-generate images via OpenAI Images API. Random prompt sampler + `index.html` gallery.
claude-opus-4-5-migration
80.2kMigrate prompts and code from Claude Sonnet 4.0, Sonnet 4.5, or Opus 4.1 to Opus 4.5
frontend-design
80.2kCreate distinctive, production-grade frontend interfaces with high design quality. Use this skill when the user asks to build web components, pages, or applications. Generates creative, polished code that avoids generic AI aesthetics.
