### 3.2.2 3-d graph

`plotfunc` takes two main arguments : an expression of two variables or a list of several expressions of two variables and the list of these two variables, where each variable may be replaced by an equality variable=interval to specify the range for this variable (if not specified, default values are taken from the graph configuration). `plotfunc` accepts two optional arguments to specify the discretisation step in x and in y by `xstep=...` and `ystep=...`. Alternatively one can specify the number of points used for the representation of the function with `nstep=` (instead of `xstep` and `ystep`).
`plotfunc` draws the surface(s) defined by z= the first argument.
Input :

`plotfunc( x```^```2+y```^```2,[x,y])`

Output :

`A 3D graph of z=x```^```2+y```^```2`

Input :

`plotfunc(x*y,[x,y])`

Output :

`The surface z=x*y, default ranges`

Input :

`plotfunc([x*y-10,x*y,x*y+10],[x,y])`

Output :

`The surfaces z=x*y-10, z=x*y and z=x*y+10`

Input :

`plotfunc(x*sin(y),[x=0..2,y=-pi..pi])`

Output :

`The surface` `z=x*y` `for the specified ranges`

Now an example where we specify the x and y discretisation step with `xstep` and `ystep`. Input :

`plotfunc(x*sin(y),[x=0..2,y=-pi..pi],xstep=1,ystep=0.5)`

Output :

`A portion of surface` `z=x*y`

Alternatively we may specify the number of points used for the representation of the function with `nstep` instead of `xstep` and `ystep`, input :

`plotfunc(x*sin(y),[x=0..2,y=-pi..pi],nstep=300)`

Output :

`A portion of surface` `z=x*y`

Remarks

- Like any 3-d scene, the viewpoint may be modified by rotation around the `x` axis, the `y` axis or the `z` axis, either by dragging the mouse inside the graphic window (push the mouse outside the parallelepiped used for the representation), or with the shortcuts `x`, `X`, `y`, `Y`, `z` and `Z`.
- If you want to print a graph or get a LATEX translation, use the graph menu
  `Menu``▸``print``▸``Print(with Latex)`