June 4th, 2010 | 6 Comments
If one have a coordinate system with n-dimension, then one of the dimensions can be expressed by the n-1 other dimensions, e.g. z = f(x,y).
But if you want to plot functions that are defined in polar coordinates, e.g. a sphere, they are complicated to define with z = f(x,y). But Gnuplot offers you a way to handle this type of functions by using its parametric mode. In parametric mode the functions are expressed in angular coordinates t or u,v dependend on the dimensions of your plot.
2D case
In the 2D case we have only one free dimension:
y = f(x) => x = fx(t), y = fy(t)
In Fig. 1 we see the connections between the angular coordinate t
and radius r
and x,y
that is given by
x = r cos(t) y = r cos(π/2-t) = r sin(t)
Using the result from above it is very easy to plot a circle:
set parametric set trange [0:2*pi] # Parametric functions for a circle fx(t) = r*cos(t) fy(t) = r*sin(t) plot fx(t),fy(t)
3D case
In three dimensions we have the case:
z = f(x,y) => x = fx(u,v), y = fy(u,v), z = fz(u,v)
In Fig. 3 we see the connection between the two angular variables u
(that is t
in the 2D case), v
and the radius r
:
x = r cos(v) cos(u) y = r cos(v) sin(u) z = r sin(u)
Using the parametric variables u,v
it is very easy to draw a sphere or a piece of a sphere:
set parametric set urange [0:3.0/2*pi] set vrange [-pi/2:pi/2] # Parametric functions for the sphere fx(v,u) = r*cos(v)*cos(u) fy(v,u) = r*cos(v)*sin(u) fz(v) = r*sin(v) splot fx(v,u),fy(v,u),fz(v)
The result is shown in Fig. 4. Note that we have to use 3.0/2, because 3/2 is 1 for Gnuplot!