Changeset 21446
- Timestamp:
- 12/21/16 09:46:50 (8 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
issm/trunk-jpl/src/m/plot/plot_unit.py
r21444 r21446 1 1 from cmaptools import truncate_colormap 2 2 from plot_quiver import plot_quiver 3 from scipy.interpolate import griddata 3 4 import numpy as np 4 5 try: … … 22 23 #if we are plotting 3d replace the current axis 23 24 if not is2d: 25 axgrid[gridindex].axis('off') 24 26 ax=inset_locator.inset_axes(axgrid[gridindex],width='100%',height='100%',loc=3,borderpad=0,axes_class=Axes3D) 27 ax.set_axis_bgcolor((0.7,0.7,0.7)) 25 28 else: 26 29 ax=axgrid[gridindex] … … 91 94 tri=ax.tripcolor(triangles,data,colorlevels,cmap=cmap,norm=norm,alpha=alpha,edgecolors=edgecolor) 92 95 else: 96 97 93 98 #first deal with colormap 94 99 loccmap = plt.cm.ScalarMappable(cmap=cmap) … … 103 108 recface=np.vstack((recface,np.vstack((elements[:,2],elements[:,0],elements[:,3],elements[:,5])).T)) 104 109 eltind=np.hstack((eltind,np.arange(0,np.shape(elements)[0]))) 105 tmp = np.ascontiguousarray( recface).view(np.dtype((np.void, recface.dtype.itemsize * recface.shape[1])))106 _, idx = np.unique(tmp, return_index=True)107 recel= recface[idx ]108 recindex=eltind[idx ]110 tmp = np.ascontiguousarray(np.sort(recface)).view(np.dtype((np.void, recface.dtype.itemsize * recface.shape[1]))) 111 _, idx, recur = np.unique(tmp, return_index=True, return_counts=True) 112 recel= recface[idx[np.where(recur==1)]] 113 recindex=eltind[idx[np.where(recur==1)]] 109 114 for i,rectangle in enumerate(recel): 110 115 rec=zip(x[rectangle],y[rectangle],z[rectangle]) … … 120 125 eltind=np.hstack((eltind,np.arange(0,np.shape(elements)[0]))) 121 126 tmp = np.ascontiguousarray(triface).view(np.dtype((np.void, triface.dtype.itemsize * triface.shape[1]))) 122 _, idx = np.unique(tmp, return_index=True) 123 triel= triface[idx] 124 triindex=eltind[idx] 127 _, idx,recur = np.unique(tmp, return_index=True,return_counts=True) 128 #we keep only top and bottom elements 129 triel= triface[idx[np.where(recur==1)]] 130 triindex=eltind[idx[np.where(recur==1)]] 125 131 for i,triangle in enumerate(triel): 126 132 tri=zip(x[triangle],y[triangle],z[triangle]) … … 154 160 loccmap.set_array([min(data),max(data)]) 155 161 loccmap.set_clim(vmin=min(data),vmax=max(data)) 156 162 157 163 #deal with prism sides 158 164 recface=np.vstack((elements[:,0],elements[:,1],elements[:,4],elements[:,3])).T 159 165 recface=np.vstack((recface,np.vstack((elements[:,1],elements[:,2],elements[:,5],elements[:,4])).T)) 160 166 recface=np.vstack((recface,np.vstack((elements[:,2],elements[:,0],elements[:,3],elements[:,5])).T)) 161 tmp = np.ascontiguousarray( recface).view(np.dtype((np.void, recface.dtype.itemsize * recface.shape[1])))162 _, idx = np.unique(tmp, return_index=True)163 recel= recface[idx ]167 tmp = np.ascontiguousarray(np.sort(recface)).view(np.dtype((np.void, recface.dtype.itemsize * recface.shape[1]))) 168 _, idx, recur = np.unique(tmp, return_index=True, return_counts=True) 169 recel= recface[idx[np.where(recur==1)]] 164 170 for rectangle in recel: 165 171 rec=zip(x[rectangle],y[rectangle],z[rectangle]) … … 169 175 pl3.set_color(color) 170 176 ax.add_collection3d(pl3) 171 177 172 178 #deal with prism faces 173 179 triface=np.vstack((elements[:,0:3],elements[:,3:6])) 174 180 tmp = np.ascontiguousarray(triface).view(np.dtype((np.void, triface.dtype.itemsize * triface.shape[1]))) 175 _, idx = np.unique(tmp, return_index=True) 176 triel= triface[idx] 181 _, idx,recur = np.unique(tmp, return_index=True,return_counts=True) 182 #we keep only top and bottom elements 183 triel= triface[idx[np.where(recur==1)]] 177 184 for triangle in triel: 178 185 tri=zip(x[triangle],y[triangle],z[triangle]) … … 182 189 pl3.set_color(color) 183 190 ax.add_collection3d(pl3) 184 191 185 192 ax.set_xlim([min(x),max(x)]) 186 193 ax.set_ylim([min(y),max(y)])
Note:
See TracChangeset
for help on using the changeset viewer.