/[escript]/trunk/pyvisi_old/examples/surfaceAndContourPlot.py
ViewVC logotype

Contents of /trunk/pyvisi_old/examples/surfaceAndContourPlot.py

Parent Directory Parent Directory | Revision Log Revision Log


Revision 786 - (show annotations)
Tue Jul 25 04:58:05 2006 UTC (13 years, 2 months ago) by gross
File MIME type: text/x-python
File size: 2703 byte(s)
switched off pyvisi
1 # $Id: surfaceAndContourPlot.py,v 1.3 2005/11/08 08:23:45 paultcochrane Exp $
2
3 """
4 Example of plotting surfaces with contours in pyvisi
5
6 @var __author__: name of author
7 @var __license__: licence agreement
8 @var __copyright__: copyrights
9 @var __url__: url entry point on documentation
10 @var __version__: version
11 @var __date__: date of the version
12 """
13
14 __copyright__=""" Copyright (c) 2006 by ACcESS MNRF
15 http://www.access.edu.au
16 Primary Business: Queensland, Australia"""
17 __license__="""Licensed under the Open Software License version 3.0
18 http://www.opensource.org/licenses/osl-3.0.php"""
19 __author__="Paul Cochrane"
20 __url__="http://www.iservo.edu.au/esys"
21 __version__="$Revision$"
22 __date__="$Date$"
23
24
25 import sys
26 numArgs = len(sys.argv)
27 if numArgs == 1:
28 ren_mod = "gnuplot"
29 else:
30 ren_mod = sys.argv[1]
31
32 # set up some data to plot
33 from Numeric import *
34
35 # the x and y axes
36 x = arange(-2,2,0.2, typecode=Float)
37 y = arange(-2,3,0.2, typecode=Float)
38
39 # pick some interesting function to generate the data in the third dimension
40 # this is the one used in the matlab docs: z = x*exp(-x^2-y^2)
41 z = zeros((len(x),len(y)), typecode=Float)
42
43 # boy do *I* feel old fashioned writing it this way
44 # surely there's another way to do it: - something to do later
45 for i in range(len(x)):
46 for j in range(len(y)):
47 z[i,j] = x[i]*exp(-x[i]*x[i] - y[j]*y[j])
48
49 # import the general pyvisi stuff
50 from esys.pyvisi import *
51 # import the renderer-specific overrides of the interface
52 if ren_mod == "gnuplot":
53 from esys.pyvisi.renderers.gnuplot import *
54 elif ren_mod == "vtk":
55 from esys.pyvisi.renderers.vtk import *
56 else:
57 raise ValueError, "Unknown renderer module"
58
59 # define a scene object
60 # a Scene is a container for all of the kinds of things you want to put
61 # into your plot, for instance, images, meshes, arrow/vector/quiver
62 # plots, contour plots, spheres etc.
63 scene = Scene()
64
65 # create a SurfacePlot object
66 plot = SurfacePlot(scene)
67
68 # add some helpful info to the plot
69 plot.title = 'Example surface plot with contour on base'
70 plot.xlabel = 'x'
71 plot.ylabel = 'y'
72 plot.zlabel = 'z'
73
74 # add a contour to the base of the axes
75 plot.contours = True
76
77 # assign the data to the plot
78 # this version assumes that we have x, then y, then z and that z is 2D
79 # and that x and y are 1D arrays
80 plot.setData(x,y,z)
81 # alternative syntax
82 #plot.setData(xData=x, yData=y, zData=z)
83 # or (but more confusing depending upon one's naming conventions)
84 #plot.setData(x=x, y=y, z=z)
85
86 # render the scene to screen
87 scene.render(pause=True, interactive=True)
88
89 # save the scene to file
90 scene.save(fname="surfaceAndContourPlot.png", format=PngImage())
91
92 # vim: expandtab shiftwidth=4:

  ViewVC Help
Powered by ViewVC 1.1.26