Mark A. Caprio, University of Notre Dame
SciDraw examples
Click here for PDF.

SciDraw is a system for preparing publication-quality scientific figures with Mathematica.   SciDraw provides both a framework for structuring figures and tools for generating their content.  SciDraw helps with generating figures involving mathematical plots, data plots, and diagrams.  The package allows extensive manual fine tuning of the styling of text and graphics.

The structural framework includes:
  • generation of panels for multi-panel and inset figures, with fine control over all properties,
  • customizable tick marks,
  • style definitions for uniformly controlling formatting and appearance across multiple figures,
  • tools for annotating figures with text labels, axes, etc.
Any graphics (plots, images, etc.) which you can produce in or import into Mathematica can easily be included in a SciDraw figure.

Beyond these structural elements, SciDraw then also provides an object oriented drawing system which makes many hard-to-draw scientific diagrams comparatively easy to generate — e.g., by helping you to automatically attach text labels to objects in the figure (such as geometric shapes, arrows, and mathematical curves), and by helping you to position these objects with respect to each other.

SciDraw also provides data plotting and legend generation capabilities complementary to those built into Mathematica

SciDraw is the successor to LevelScheme [see also Comput. Phys. Commun. 171, 107 (2005)].  The LevelScheme package was designed to allow the easy and efficient preparation of high-quality level schemes, or level energy diagrams, as used in nuclear, atomic, molecular, and hadronic physics.  These capabilities have been retained.  Like LevelScheme, SciDraw automates many of the tedious aspects of preparing a level scheme, such as positioning transition arrows between levels or placing text labels alongside the objects they label. It also includes specialized features for creating several common types of level schemes encountered in nuclear physics.
Downloading SciDraw

Status: The reference manual is complete, and there are plenty of examples, but the guide for new users is still under construction.  If you do not mind slightly-incomplete documentation, you are welcome to download the latest release.

Known issues with latest Mathematica releases

Under Mathematica 10.4 (or higher): When you first load SciDraw, you will receive error messages such as SetDelayed::write: "Tag BoundingRegion in BoundingRegion[...] is Protected.". This is due to name conflicts introduced with Mathematica 10.4. You may safely ignore these messages and continue using SciDraw normally, except that SciDraw's BoundingRegion function will not be available to you. This issue will be addressed in the next release of SciDraw.

Under Mathematica 12 (or higher): As of June 2021, a live update to Mathematica 12 breaks SciDraw's rendering. You will receive error messages such as FigCompositeElement::objsyntax: Missing or unexpected arguments in FigCompositeElement[...]. (The given arguments do not match any of the definitions for the constructor for class FigCompositeElement.), and you will not get valid figure output. (This is since Mathematica defined a new symbol which conflicts with an existing symbol in SciDraw's MathObject library.) When you installed SciDraw, you should have installed a MathObject directory alongside your SciDraw directory. As an interim fix, please find your file MathObject/MathObject.m, and replace it with this patched version:

Under Mathematica 13: Mathematica 13 presents a major incompatibility with SciDraw. The new experimental Mathematica built-symbol Canvas[] (introduced in Mathematica 12.2) conflicts with the longstanding SciDraw symbol of the same name, which is part of the SciDraw interface for specifying coordinates and is also heavily used in SciDraw's internal coordinate conversions. There is no immediate fix, and a long-term solution will likely involve replacing both "Scaled" and "Canvas" wherever they appear in SciDraw code.


User guides (also included in the full download above): SciDrawGuide.pdf and CustomTicksGuide.pdf

Further technical documentation for several of the subpackages is available through the Mathematica Information Center's MathSource code library: search for packages by this author at MathSource

Current development versions at GitHub for SciDraw and CustomTicks.

Legacy page for LevelScheme.

Last modified: January 11, 2022
Mark A. Caprio, University of Notre Dame