source: issm/trunk/src/m/exp/expdisp.py@ 21341

Last change on this file since 21341 was 21341, checked in by Mathieu Morlighem, 8 years ago

merged trunk-jpl and trunk for revision 21337

File size: 2.5 KB
Line 
1from expread import expread
2import numpy as np
3from matplotlib.path import Path
4import matplotlib.patches as patches
5
6def expdisp(ax,options):
7 '''
8 plot the contents of a domain outline file
9
10 This routine reads in an exp file and plots all of the x,y points/lines/patches
11
12 'ax' is a handle to the current plot axes, onto which we want to plot
13
14 Usage:
15 expdisp(ax,options)
16
17 List of options passable to plotmodel:
18 'expdisp' : path (or list of paths) to the exp file to be plotted
19 'explinewidth' : linewidth
20 'explinestyle' : matplotlib linestyle string
21 'explinecolor' : matplotlib color string
22 'expfill' : (True/False) fill a closed contour
23 'expfillcolor' : Color for a filled contour, only used if expfill is True
24 'expfillalpha' : alpha transparency for filled contour
25
26 All options should be passed as lists of length len(number of exp files passed)
27 '''
28
29 filenames=options.getfieldvalue('expdisp')
30 linewidth=options.getfieldvalue('explinewidth',[1]*len(filenames))
31 linestyle=options.getfieldvalue('explinestyle',['-']*len(filenames))
32 linecolor=options.getfieldvalue('explinecolor',['k']*len(filenames))
33 fill=options.getfieldvalue('expfill',[0]*len(filenames))
34 alpha=options.getfieldvalue('expfillalpha',[1]*len(filenames))
35 facecolor=options.getfieldvalue('expfillcolor',['r']*len(filenames))
36 unitmultiplier=options.getfieldvalue('unit',1)
37 for i in xrange(len(filenames)):
38 linestylei=linestyle[i]
39 linecolori=linecolor[i]
40 linewidthi=linewidth[i]
41 alphai=alpha[i]
42 facecolori=facecolor[i]
43 filenamei=filenames[i]
44 filli=fill[i]
45 domain=expread(filenamei)
46 for j in xrange(len(domain)):
47 if domain[j]['nods']==1:
48 ax.plot(domain[j]['x']*unitmultiplier,domain[j]['y']*unitmultiplier,'o',mec='k',mfc='r',ms=10)
49 elif filli:
50 verts=np.column_stack((domain[j]['x'],domain[j]['y']))
51 codes=[Path.MOVETO] + [Path.LINETO]*(len(domain[j]['x'])-2) + [Path.CLOSEPOLY]
52 path=Path(verts, codes)
53 patch=patches.PathPatch(path,facecolor=facecolori,edgecolor=linecolori,alpha=alphai,
54 lw=linewidthi)
55 ax.add_patch(patch)
56 else:
57 x=domain[j]['x'].tolist() # since expread returns a string representation of the arrays
58 y=domain[j]['y'].tolist()
59 ax.plot(x*unitmultiplier,y*unitmultiplier,ls=linestylei,lw=linewidthi,c=linecolori)
Note: See TracBrowser for help on using the repository browser.