To plot mathematical text, this function uses base graphics functions to plot it to a .png file, then uses that file as a texture in a sprite.

plotmath3d(x, y = NULL, z = NULL, text, cex = par("cex"),
           adj = 0.5, pos = NULL, offset = 0.5,
           fixedSize = TRUE, startsize = 480, initCex = 5, ...)


x, y, z

coordinates. Any reasonable way of defining the coordinates is acceptable. See the function xyz.coords for details.


A character vector or expression. See plotmath for how expressions are interpreted.


Character size expansion.


one value specifying the horizontal adjustment, or two, specifying horizontal and vertical adjustment respectively, or three, for depth as well.

pos, offset

alternate way to specify adj; see text3d


Should the resulting sprite behave like the default ones, and resize with the scene, or like text, and stay at a fixed size?

startsize, initCex

These parameters are unlikely to be needed by users. startsize is an over-estimate of the size (in pixels) of the largest expression. Increase this if large expressions are cut off. initCex is the size of text used to form the bitmap. Increase this if letters look too blurry at the desired size.


Additional arguments to pass to text when drawing the text.


The text3d function passes calls to this function if its usePlotmath argument is TRUE. The default value is determined by examining its texts argument; if it looks like an expression, plotmath3d is used.


Called for the side effect of displaying the sprites. The shape ID of the displayed object is returned.


Duncan Murdoch

See also


plotmath3d(1:3, 1:3, 1:3, expression(x[1] == 1, x[2] == 2, x[3] == 3))
# This lets the text resize with the plot
text3d(4, 4, 4, "resizeable text", usePlotmath = TRUE, fixedSize = FALSE)