Scaling
, YXRatio
, ZXRatio
Scaling ratios
MuPAD® notebooks are not recommended. Use MATLAB® live scripts instead.
MATLAB live scripts support most MuPAD functionality, though there are some differences. For more information, see Convert MuPAD Notebooks to MATLAB Live Scripts.
Scaling  Inherited  Automatic , Constrained ,
or Unconstrained 
YXRatio , ZXRatio  Inherited  Positive real numberReal number 
Objects  Default Values 

plot::CoordinateSystem2d , plot::CoordinateSystem3d 

plot::Scene3d 

With Scaling = Constrained
, the graphics
output is scaled like the model coordinates, i.e., circle appear as
circles, spheres as spheres.
With Scaling = Unconstrained
, the graphics
output is scaled independently in each coordinate direction such that
the graphics fits optimally into the viewing area. Circles may appear
as ellipses, spheres as ellipsoids.
For Scaling = Unconstrained
, the scaling
ratios of the different coordinate directions in a 3D plot can be
set via the attributes YXRatio
and ZXRatio
.
If the graphics consists of geometrical objects such as circles,
pie charts, spheres etc., the setting Scaling = Constrained
is
appropriate. This prevents circles from being deformed to ellipses
in the graphical output.
For the visualization of nongeometrical data (usually, in function
plots etc.), a scaling constrained to model coordinates is usually
not appropriate. Think of the graph of y = e^{x} for ,
where the y values
extend over the range ,
which is roughly .
With Scaling = Constrained
, the graphical output
would consist of a narrow vertical strip with the side ratio y
: x = 22025 : 10
. Here, Scaling = Unconstrained
is
appropriate.
The default value is Scaling = Unconstrained
.
However, many “geometrical” objects in the MuPAD^{®} plot
library
override this default setting via the “hint mechanism”
(see section Primitives
Requesting Special Scene Attributes: “Hints” in
this document). Whenever such an object is plotted in a scene, the
whole scene uses Scaling = Constrained
. A complete
list of these “geometrical objects” such as circles,
spheres, cones etc. is given further up on this help page.
With Scaling = Automatic
, the graphics uses Scaling
= Constrained
for plots in which the coordinate ranges to
be displayed have a ratio close to 1 : 1
in 2D
or 1 : 1 : 1
in 3D. Otherwise, Scaling
= Unconstrained
is used.
The attributes YXRatio = r_{1}
and ZXRatio
= r_{2}
only have an effect in 3D with Scaling
= Unconstrained
. The graphical scene is scaled to a box
with side ratios z : y : x = r_{2}: r_{1}:
1
. On the screen, the bounding box of the scene looks like
a box with these side ratios.
We plot a scene containing a function graph and some circles
highlighting the extrema. Because the circle sends the “hint”Scaling
= Constrained
,
this scaling is used for the whole scene. Consequently, the circles
appear as circles:
plot(plot::Function2d(sin(x), x = 0 .. 2*PI), plot::Circle2d(0.2, [PI/2, 1], Color = RGB::Black), plot::Circle2d(0.2, [3*PI/2, 1], Color = RGB::Black), BorderWidth = 1.0*unit::mm, Header = "Scaling = Constrained")
With Scaling = UnConstrained
, we get a better
fit of the plot in the canvas. However, the circles are deformed to
ellipses:
plot(plot::Function2d(sin(x), x = 0 .. 2*PI), plot::Circle2d(0.2, [PI/2, 1], Color = RGB::Black), plot::Circle2d(0.2, [3*PI/2, 1], Color = RGB::Black), Scaling = Unconstrained, BorderWidth = 1.0*unit::mm, Header = "Scaling = Unconstrained")
A sphere of type plot::Sphere
sends the “hint” Scaling
= Constrained
.
With this scaling, YXRatio
, ZXRatio
have
no effect:
s := plot::Sphere(1, [0, 0, 0]): plot(s, BorderWidth = 0.5*unit::mm, Header = "Scaling = Constrained", YXRatio = 3, ZXRatio = 10)
We use Scaling = Unconstrained
. With the
default values YXRatio = 1
, ZXRatio =
2/3
, the objects in a 3D scene are displayed like a box
with side ratios X : Y : Z = 3 : 3 : 2
:
plot(s, BorderWidth = 0.5*unit::mm, Scaling = Unconstrained, Header = "X:Y:Z = 3:3:2")
We request different scaling ratios:
plot(s, BorderWidth = 0.5*unit::mm, Header = "X:Y:Z = 5:5:1", Scaling = Unconstrained, YXRatio = 1, ZXRatio = 1/5, BorderWidth = 0.5*unit::mm)
plot(s, BorderWidth = 0.5*unit::mm, Header = "X:Y:Z = 7:3:1", Scaling = Unconstrained, YXRatio = 3/7, ZXRatio = 1/7, BorderWidth = 0.5*unit::mm)
delete s: