Plots with Units - Maple Programming Help

Plots with Units

 Calling Sequence plot(f, r1, r2, opts) plot3d(f, r1, r2, opts)

Parameters

 f - expression or procedure to be plotted r1 - range of the form a..b or var=a..b r2 - range of the form a..b or var=a..b opts - plotting options

Options

 • useunits (boolean or list): Indicates presence of units in input or specifies units to be used.

Description

 • The plot and plot3d commands allow input arguments that involve units. Units may appear in the expression or procedure to be plotted or in the range arguments. These units are then included in the axis labels.
 • This help page describes the use of units in the parameters of plot and plot3d. For general information about the calling sequences of these commands, see plot and plot3d.
 • If f is an expression containing a unit, then the plot is computed using the quantity, without the unit, and the unit is included as part of the dependent axis label (that is, the y-axis label for 2-D plots and the z-axis label for 3-D plots).
 • If f is a procedure that evaluates to a numeric value with a unit, then the unit is ignored during computation. (See the Notes section below for more information.)
 • The range arguments r1 and r2 can be in the form of a simple range, a..b, or an equation with a variable name as the left-hand side, var=a..b. If the range a..b contains a unit, then that unit is included in the label for that axis. The unit must then be given for both a and b. If a and b contain different units, then the plotting command attempts to convert them to a common unit and issues an error if this is not possible.
 If the range argument r1 and/or r2 has a unit and f is an expression, then the corresponding variable(s) var will be substituted with an appropriate unit attached. If r1 and/or r2 has a unit and f is a procedure, then the corresponding argument(s) will have an appropriate unit attached.
 • The useunits option may be used for two purposes:
 useunits=true (or simply useunits) tells the plotting command that the input procedure involves computation with units.  This is necessary if there is no other indication through the ranges of the presence of units.
 useunits=[unit1, unit2] or [unit1, unit2, unit3] can be used to specify the units for each axis label. If the name default is given for any of these entries, then a default axis label is produced.
 • If the labels option is provided, then that value is used for the axes labels, overriding any default labels computed from the function and range arguments or the useunits option.
 • All other plot options normally available with the plot and plot3d commands can be provided, but units in these option values are not generally understood or processed.

Notes

 • For the sake of efficient computation, if f is a procedure, values computed from f are assumed to be unit-free unless there is an indication that units are present.  For this reason, you must explicitly specify the units desired, either through the ranges or through the useunits option. If the useunits=true option is not provided with a procedure that produces values containing units, an empty plot might result.
 • Plotting commands generally try to use the faster evalhf mode of computation whenever possible. (For more information about the evalhf mode, see the plot/computation help page.) However, evalhf does not work with procedures that return values with units. If you want to plot a procedure that involves extremely intensive computation, it is recommended you do not perform computations with units within the procedure.
 • For axis labels, any unit information provided in the ranges overrides units provided in the plotting function. Additionally, the value of the useunits option, if given, overrides all other unit information given in the other arguments. However, if the labels option is provided, then that is used by the plotting command to generate axis labels and units information is ignored.
 • Units cannot be used with plotting functions given in parametric form.

Examples

Create a simple 2-D plot. The unit appears on the y-axis.

 > $\mathrm{plot}\left({x}^{2}⟦m⟧,x=-5..5\right)$

Include units with the x-axis range.

 > $\mathrm{plot}\left(\mathrm{sin}\left(x\right),x=-2\mathrm{Pi}⟦\mathrm{radians}⟧..2\mathrm{Pi}⟦\mathrm{radians}⟧,{\mathrm{axis}}_{1}=\left[\mathrm{tickmarks}=\left[\mathrm{spacing}\left(\mathrm{Pi}\right)\right]\right],\mathrm{color}="Indigo"\right)$

In the example below, centimeters are converted to meters.

 > $\mathrm{plot}\left(\left[{x}^{2},0.5{x}^{2}\right],x=150⟦\mathrm{cm}⟧..5⟦m⟧,\mathrm{axes}=\mathrm{boxed}\right)$

Use a procedure as input. The useunits option must be provided to indicate that the procedure involves computation with units.

 > $\mathrm{plot}\left(x→{x}^{2}⟦m⟧,-5..5,\mathrm{useunits},\mathrm{thickness}=2,\mathrm{color}="DarkGreen"\right)$

Include a unit with the x-axis and y-axis ranges.

 > $\mathrm{plot}\left(x→\mathrm{cos}\left(x\right),0..2\mathrm{Pi}⟦\mathrm{radians}⟧,-2⟦m⟧..2⟦m⟧,{\mathrm{axis}}_{1}=\left[\mathrm{tickmarks}=\left[\mathrm{spacing}\left(\frac{\mathrm{Pi}}{2}\right)\right]\right]\right)$

Use the useunits option to specify which units should be displayed in the axis labels. This is useful if the expression to be plotted cannot easily be made to accept units - for example, if it comes from a lookup table. In this case, it is essentially the same as the labels option.

 > $\mathrm{lookup}≔\mathrm{Interpolation}:-\mathrm{Interpolate}\left(\left[\mathrm{seq}\left(1..10\right)\right],\left[2,5,1,2,6,3,-4,2,4,5\right],\mathrm{method}=\mathrm{nearest}\right)$
 ${\mathrm{lookup}}{≔}\left[\begin{array}{c}{\text{a nearest interpolation object}}\\ {\text{with 10 points in 1-D}}\end{array}\right]$ (1)
 > $\mathrm{plot}\left(\mathrm{lookup},1..10,\mathrm{useunits}=\left[⟦s⟧,⟦m⟧\right]\right)$
 > $\mathrm{plot}\left(\mathrm{lookup},1..10,\mathrm{labels}=\left[⟦s⟧,⟦m⟧\right]\right)$