/[escript]/trunk/pyvisi/examples/arrowPlotExample2.py
ViewVC logotype

Annotation of /trunk/pyvisi/examples/arrowPlotExample2.py

Parent Directory Parent Directory | Revision Log Revision Log


Revision 605 - (hide annotations)
Mon Mar 20 07:16:27 2006 UTC (13 years, 8 months ago) by gross
File MIME type: text/x-python
File size: 2636 byte(s)
pyvisi with vtk runs noe on the altix
1 cochrane 337 # $Id: arrowPlotExample2.py,v 1.2 2005/05/24 01:30:36 paultcochrane Exp $
2    
3     """
4     Example of plotting a vector field with pyvisi
5    
6     This example uses 2D array inputs, which is sometimes easier for users.
7     """
8    
9     # what plotting method are we using?
10     method = 'pyvisi'
11    
12     # set up some data to plot
13     from Numeric import *
14    
15     dim = 10
16    
17     # initialise the positions of the vectors
18     x = zeros((dim,dim), typecode=Float)
19     y = zeros((dim,dim), typecode=Float)
20    
21     # initialise the vector displacements
22     # (I may need to rethink how this works in the interface)
23     dx = zeros((dim,dim), typecode=Float)
24     dy = zeros((dim,dim), typecode=Float)
25    
26     # set the positions randomly, and set the displacements to some smaller
27     # random number but of mean zero instead of distributed between 0 and 1
28     import random
29     random.seed()
30     for i in range(dim):
31     for j in range(dim):
32     x[i,j] = random.random()
33     y[i,j] = random.random()
34     dx[i,j] = (random.random()-0.5)/5.0
35     dy[i,j] = (random.random()-0.5)/5.0
36    
37     # plot it using one of the three methods
38     if method == 'pyvisi':
39    
40     # example code for how a user would write a script in pyvisi
41 gross 605 from esys.pyvisi import * # base level visualisation stuff
42     #from esys.pyvisi.utils import * # pyvisi specific utils
43 cochrane 337 # import the objects to render the scene using the specific renderer
44 gross 605 from esys.pyvisi.renderers.gnuplot import * # gnuplot
45 cochrane 337
46     # define the scene object
47     # a Scene is a container for all of the kinds of things you want to put
48     # into your plot for instance, images, meshes, arrow/vector/quiver plots,
49     # contour plots, spheres etc.
50     scene = Scene()
51    
52     # create a LinePlot object
53     plot = ArrowPlot(scene)
54    
55     # add some helpful info to the plot
56     plot.title = 'Example 2D arrow/quiver/vector field plot'
57     plot.xlabel = 'x'
58     plot.ylabel = 'y'
59    
60     # assign some data to the plot
61     plot.setData(x, y, dx, dy)
62    
63     # render the scene to screen
64     scene.render(pause=True, interactive=True)
65    
66     # save the scene out to file
67     plot.setData(x, y, dx, dy) # have to do this now because we've already
68     # render()ed the scene. This requirement
69     # will be removed in the future
70     scene.save(fname="arrowPlotExample2.png", format=PngImage())
71    
72     elif method == 'vtk':
73     #### original vtk code
74    
75     print "Sorry, the vtk interface hasn't been written yet."
76     elif method == 'plplot':
77     #### original plplot code
78    
79     print "Sorry, the plplot interface hasn't been written yet."
80     else:
81     print "Eeek! What plotting method am I supposed to use???"
82    
83     # vim: expandtab shiftwidth=4:
84    

  ViewVC Help
Powered by ViewVC 1.1.26