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

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

Parent Directory Parent Directory | Revision Log Revision Log


Revision 605 - (show 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 # $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 from esys.pyvisi import * # base level visualisation stuff
42 #from esys.pyvisi.utils import * # pyvisi specific utils
43 # import the objects to render the scene using the specific renderer
44 from esys.pyvisi.renderers.gnuplot import * # gnuplot
45
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