Presentations Package for Mathematica

Custom Graphics and Presentations with Mathematica
Curved 3D Arrows



Our research group uses DrawGraphics to prepare the majority of the figures for our scientific publications. Using DrawGraphics I can easily create ready-for-publication scientific graphics straight from Mathematica. With no need for additional software, revising and editing our graphics is as easy as pressing Shift-Enter, and letting Mathematica render the final graphic.

One of the most valuable aspects of working with DrawGraphics is the ease with which one can explore alternative visualizations of quantitative data or mathematical functions. I use Mathematica and DrawGraphics for almost all of my analytic modeling and data analysis. Its simple but extremely powerful graphics facilitate the exploration of the data.

Carl T. Bergstrom, Department of Biology, University of Washington



The DrawGraphics package is a welcome addition to the vast number of packages for Mathematica. This package makes it easy to translate equations, thoughts and concepts into visual images. The approach taken by David is more natural then the standard Mathematica approach. It is easy to build complex pictures using his drawing paper paradigm, you just build your image as you would do on paper: one piece at a time. All packages offered by David are well built and well documented: easy to use.

Major Robert Pigeon, DRDC Valcartier

Note: For Mathematica Version 6 and 7 the DrawGraphics package has now been upgraded to the Presentations package. The Presentations package contains most of the previous DrawGraphics routines but is extending into a broader range of usage including the new features of Version 6. It now contains a complete set of complex function graphics routines that completely replaces the functionality of the older Cardano3 package. You can draw in the complex plane directly using complex numbers. The entire package is oriented toward the ability to work smoothly with textbook material, to write tutorials for students or self-study, and to make it easier for technical communication. Presentations is also becomming something of a book because there are many examples and extended discussions and three essays on Writing Notebooks, Writing Presentations and Writing Packages.

When you purcase the package you can download the pre-version 6 package, the version 6 Presentation package or both. When you purchase Presentations/DrawGraphics you will be able to freely download updates - at least for awhile. Purchasers of the pre-version 6 DrawGraphics may freely update to the Version 6 Presentations package.


DrawGraphics implements a paradigm that greatly facilitates the combination of plotting elements produced by various plot commands. All plotting commands and primitive graphics can be contained within one plot statement. Each type of Mathematica Plot command has a corresponding Draw statement that extracts the primitive graphics produced by the plot without additional display. Thus, curves and other complex elements are on the same level as Points, Lines and Polygons. Complex graphics can be built up very simply just by specifying graphics directives and graphics elements, one after the other.

Because the primitive graphics elements are directly available, they can be operated on in many different ways. You can do a general transformation of the graphics with DrawingTransform. You can eliminate "return line" artifacts with SplitLineOnDistance. You can label curves and contours with DrawLineLabels. You can make contour plots that fit circular or other coordinate systems. You can draw FilledPlots in one coordinate system and then transform them to other coordinate systems.

There are many convenience routines for graphical work. ContourColors will generate colors that ensure that each region of a contour plot has a unique color. TwoColorScale will create graded two color plots such as in cartographic maps. ColorMix will generate the mix of two colors. NeutralLighting is an easy method for specifying lights for 3D plots which can have any degree of color saturation, brightness and ambient light. This prevents surface colors from being overwhelmed by the default lighting. The lights can also be easily rotated. IteratorSubstitution generates a change of variable which effectively allows you to have variable limits in the second iterator of ParametricPlot3D statements. It allows multiple surfaces to be smoothly fitted together. CustomTicks and CustomGridLines allows easy specification of ticks and grids with complete control of styles and labeling. There is an Arrow3D routine, and routines for putting arrowheads on curves, or at fractional distances along lines.

Bode Plot

Text3D package giving true 3D vector fonts using your regular computer fonts. You can also make block 3D characters. VectorText3D is based on the Hersey fonts and can be wraped to fit curved surfaces.

Facilities are provided for Ternary plots, which represent 3-dimensional data containing a linear constraint, within a 2-dimensional triangular domain.

Presentations is moving beyond graphics to incorporate functions that make it easier to work with textbooks and normal mathematical material.

Table Maker provides a simpler paradigm for constructing custom tables. One just specifies one element after another within a single statement as with custom graphics.

The References section of Presentations allows the maintainance of a list of references or notes.

The Key Equations section allows the maintainance of a list of key equations for a notebook. The equations can be dynamically numbered, have complete control of formatting style for both equation and label, can be referenced in Inline cells, and can be recalled for later use.

The Indefinite Sequences section allows the use of expressions that contain ellipses to indicate missing terms. One can do some manipulation of the expressions and they can be converted to normal Mathematica expressions.

The Student's Integral section can be used to temporarily bypass the Integrate command and employ techniques such as operations on the integrand, change of variable, integration by parts, trigonometric substitution and linear breakout of integrals.The integrals can then be either turned over to a BasicIntegralTable, such as students might use, or turned over to the Mathematica Integrate command.

The Student's Linear Equations section allows the step by step solution of linear equation problems within a matrix structure. Matrices can have covariant or contravariant columns. The sub-package is suitable for didactic purposes and for solving small or moderate size problems within a context. The tutorial contains examples of linear equations, chemical stoichiometry and linear programming.

The Derivations section contains routines for formatting page displays and launching page displays by means of buttons. The buttons will either display the pages immediately below the button cell, or they can launch pages in a separate window. A multi-page derivation or proof can be defined by a group of buttons in various types of structures that might correspond to the structure of the derivation. There is built-in provision for two column page displays with annotation of one side and calculated mathematical expressions on the other side. The mathematical expressions can have tooltips that show the Input expression that produced the result. This provides methods for hiding Input/Output cells while displaying dynamic mathematical calculations and derivations. There is also provision for defining Sidebars as notebooks completely embedded in the mother notebook and launched with buttons.

The PlaneGeometry section contains routines for defining dynamic plane geometry diagrams. It also contains an extensive tutorial on writing custom dynamic displays. It is easier and more versatile than using the Manipulate statement.

The Manipulations section contains a number of routines that make it easier to manipulate expressions. Examples are PushOnto, which will push a set of arguments onto specific forms and works much better than the Through command, and MapLevelParts that will map a function onto a set of level parts in a expression (such as a subset of terms in a sum).

The instructions for installing the packages and documentation are contained in the PresentationsReadMe.txt file and are also included in the downloaded zip file. There are two versions of Presentations available, one for Mathematica 6 and 7, and one for Mathematica 8.

Download
Presentations Installation Instructions 2 KB, 8 Jul 2013.
Purchase Presentations/DrawGraphics Package $50, 10 MB, All the packages, documentation, and style sheet, 8 Jul 2013.

There is a free Presentations Application that can be used to read Mathematica notebooks and CDF documents prepared using Presentations but cannot conveniently be used to write such documents.
Download FreePresentations

Gianluca Gorni has many nice graphics packages at his web site. Using the DrawGraphics or DrawGraphics3D commands you can even meld them with other graphics.

Back to Mathematica Page