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

Annotation of /trunk/pyvisi_old/examples/surfacePlot.py

Parent Directory Parent Directory | Revision Log Revision Log


Revision 637 - (hide annotations)
Thu Mar 23 10:55:31 2006 UTC (13 years, 7 months ago) by gross
Original Path: trunk/pyvisi/examples/surfacePlot.py
File MIME type: text/x-python
File size: 2647 byte(s)
more copyright statements added
1 cochrane 337 # $Id: surfacePlot.py,v 1.5 2005/11/10 08:38:06 paultcochrane Exp $
2    
3     """
4     Example of plotting surfaces with pyvisi
5 gross 637
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 cochrane 337 """
13    
14 gross 637 __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 cochrane 337 import sys
26     numArgs = len(sys.argv)
27     if numArgs == 1:
28     ren_mod = "vtk"
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 gross 605 from esys.pyvisi import *
51 cochrane 337 # import the gnuplot overrides of the interface
52     if ren_mod == "gnuplot":
53 gross 605 from esys.pyvisi.renderers.gnuplot import *
54 cochrane 337 elif ren_mod == "vtk":
55 gross 605 from esys.pyvisi.renderers.vtk import *
56 cochrane 337 elif ren_mod == "plplot":
57 gross 605 from esys.pyvisi.renderers.plplot import *
58 cochrane 337 else:
59     raise ValueError, "Unknown renderer module"
60    
61     # define a scene object
62     # a Scene is a container for all of the kinds of things you want to put
63     # into your plot, for instance, images, meshes, arrow/vector/quiver
64     # plots, contour plots, spheres etc.
65     scene = Scene()
66    
67     # create a SurfacePlot object
68     plot = SurfacePlot(scene)
69    
70     # add some helpful info to the plot
71     plot.title = 'Example surface plot'
72     plot.xlabel = 'x'
73     plot.ylabel = 'y'
74     plot.zlabel = 'z'
75    
76     # assign the data to the plot
77     # this version assumes that we have x, then y, then z and that z is 2D
78     # and that x and y are 1D arrays
79     plot.setData(x,y,z)
80     # alternative syntax
81     #plot.setData(xData=x, yData=y, zData=z)
82     # or (but more confusing depending upon one's naming conventions)
83     #plot.setData(x=x, y=y, z=z)
84    
85     # render the scene to screen
86     scene.render(pause=True, interactive=True)
87    
88     # save the scene to file
89     scene.save(fname="surfacePlot.png", format=PngImage())
90    
91     # vim: expandtab shiftwidth=4:

  ViewVC Help
Powered by ViewVC 1.1.26