Silverfrost Logo About Us | Contact Us
 

Plotting z = f(x,y)

The following code is extracted from program simdem22 in the Simdem package, and it illustrates how easy it is to plot a surface defined as z = f(x,y), where x, y, and z are double precision arrays. The x and y values must be in the form of a rectangular grid.


c
c Define x and y
c
      nx = 20
      ny = 20
      x(1) = - one
      x(nx) = one
      delta = (x(nx) - x(1))/(dble(nx) - one)
      do i = 2, nx - 1
         x(i) = x(i - 1) + delta
      enddo
      y(1) = - one
      y(ny) = one
      delta = (y(ny) - y(1))/(dble(ny) - one)
      do j = 2, ny - 1
         y(j) = y(j - 1) + delta
      enddo
c
c Define z = f(x,y) and the ranges (xmin,xmax), (ymin,ymax)
c
      do j = 1, ny
         do i = 1, nx
            z(i,j) = x(i)**2 - y(j)**2
         enddo
      enddo
      xmax = x(nx)
      xmin = x(1)
      ymax = y(ny)
      ymin = y(1)
c
c Display the surface, contours, projection, skyscraper blocks, etc.
c
      call surd2s (isend, nmax, nx, ny,
     +             vector, xmax, xmin, ymax, ymin, z,
     +             unused)

The following plot is then displayed, and can be edited to add further features, printed, or archived as a graphics file. The contours can be suppressed, or plotted separately, and there are options to rotate, add labels, arrows, text, graphical objects, etc. In addition, the points defined by z = f(x,y) can be plotted as bars, or cylinders, when error bars can also be added.

 

 

Copyright © 1999-2017 Silverfrost Limited