Go to the first, previous, next, last section, table of contents.

### `ifplot`, `conplot`, `plot`, `polarplot`, `plotover`

`ifplot(func [,geometry] [,xrange] [,yrange] [,id] [,name])`
  :: Displays real zeros of a bi-variate function.
`conplot(func [,geometry] [,xrange] [,yrange] [,zrange] [,id] [,name])`
  :: Displays real contour lines of a bi-variate function.
`plot(func [,geometry] [,xrange] [,id] [,name])`
  :: Displays the graph of a univariate function.
`polarplot(func [,geometry] [,thetarange] [,id] [,name])`
  :: Displays the graph of a curve given in polar form.
`plotover(func,id,number)`
  Plots on the existing window real zeros of a bivariate function.

return
  integer
func
  polynomial
geometry, xrange, yrange, zrange
  list
id, number
  integer
name
  string

- Function `ifplot()` draws a graph of real zeros of a bi-variate function. Function `conplot()` plots the contour lines for a same argument. Function `plot()` draws the graph of a uninivariate function. Function `polarplot()` draws the graph of a curve given in polar form r=f(theta).
- The plotting functions are realized by an OpenXM server. On UNIX it is ``ox_plot'` in Asir root directory. On Windows ``engine'` acts as ``ox_plot'`. Of course, it must be activated by `ox_launch()` `ox_launch_nox()`. If the identifier of an active ``ox_plot'` is specified as id, the server is used for drawing pictures. If id is not specified, an available ``ox_plot'` server is used if it exists. If no ``ox_plot'` server is available, then `ox_launch_nox()` is automatically executed to invoke ``ox_plot'`.
- Argument func is indispensable. Other arguments are optional. The format of optional arguments and their default values (parenthesized) are listed below.
  geometry
    Window size is specified by [x,y] in unit `dot.' ([`300`,`300`] for UNIX version;
  xrange, yrange
    Value ranges of the variables are specified by [v,vmin,vmax]. ([v,`-2`,`2`] for each variable.) If this specification is omitted, the indeterminate having the higher order in func is taken for ``x'` and the one with lower order is taken for ``y'`. To change this selection, specify explicitly by xrange and/or yrange. For an uni-variate function, the specification is mandatory.
  zrange
    This specification applies only to `conplot()`. The format is [v,vmin,vmax `[`,step `]`]. If step is specified, the height difference of contours is set to (vmax-vmin)/step. ([z,`-2`,`2`,`16`].)
  id
    This specifies the number of the remote process by which you wish to draw a graph. (The number for the newest active process.)
  name
    The name of the window. (`Plot`.) The created window is titled name:n/m which means the m-th window of the process with process number n. These numbers are used for `plotover()`.
- The maximum number of the windows that can be created on a process is 128.
- Function `plotover()` superposes reals zeros of its argument bi-variate function onto the specified window.
- Enlarged plot can be obtained for rectangular area which is specified, on an already existing window with a graph, by dragging cursor with the left button of mouse from the upper-left corner to lower-right corner and then releasing it. Then, a new window is created whose shape is similar to the specified area and whose size is determined so that the largest side of the new window has the same size of the largest side of the original window. If you wish to cancel the action, drag the cursor to any point above or left of the starting point. This facility is effective when `precise` button switch is inactive. If `precise` is selected and active, the area specified by the cursor dragging will be rewritten on the same window. This will be explained later.
- A click of the right button will display the current coordinates of the cursor at the bottom area of the window.
- Place the cursor at any point in the right marker area on a window created by `conplot()`, and drag the cursor with the middle mutton. Then you will find the contour lines changing their colors depending on the movement of the cursor and the corresponding height level displayed on the upper right corner of the window.
- Several operations are available on the window: by button operations for UNIX version, and pull-down menus for Windows version.
  `quit`
    Destroys (kills) the window. While computing, quit the current computation. If one wants to interrupt the computation, use `ox_reset()`.
  `wide (toggle)`
    Will display, on the same window, a new area enlarged by 10 times as large as the current area for both width-direction and height-direction. The current area will be indicated by a rectangle placed at the center. Area specification by dragging the cursor will create a new window with a plot of the graph in the specified area.
  `precise (toggle)`
    When selected and active, `ox_plot` redraws the specified area more precisely by integer arithmetic. This mode uses bisection method based on Sturm sequence computation to locate real zeros precisely. More precise plotting can be expected by this technique than by the default plotting technique, at the expense of significant increase of computing time. As you see by above explanation, this function is only effective to polynomials with rational coefficients. (Check how they differ for (x^2+y^2-1)^2.)
  `formula`
    Displays the expression for the graph.
  `noaxis (toggle)`
    Erase the coordinates.
- Program ``ox_plot'` may consume much stack space depending on which machine it is running. You are recommended to set the stack size to about 16MB as large in ``.cshrc'` for safe. To specify the size, put `limit stacksize 16m` for an example.
- You can customize various resources of a window on `X`, e.g., coloring, shape of buttons etc. The default setting of resources is shown below. For `plot*form*shapeStyle` you can select among `rectangle`, `oval`, `ellipse`, and `roundedRectangle`.

      plot*background:white
      plot*form*shapeStyle:rectangle
      plot*form*background:white
      plot*form*quit*background:white
      plot*form*wide*background:white
      plot*form*precise*background:white
      plot*form*formula*background:white
      plot*form*noaxis*background:white
      plot*form*xcoord*background:white
      plot*form*ycoord*background:white
      plot*form*level*background:white
      plot*form*xdone*background:white
      plot*form*ydone*background:white

`References`
  section `ox_launch`, `ox_launch_nox`, `ox_shutdown`, section `ox_reset`,`ox_intr`,`register_handler`

Go to the first, previous, next, last section, table of contents.