Source code for issm.plot_quiver

import numpy as  np

[docs]def plot_quiver(x,y,data,options,ax): vx=data[:,0] vy=data[:,1] Xdist=max(x)-min(x) Ydist=max(y)-min(y) datanorm=np.sqrt(vx**2+vy**2) scaler=max(datanorm)/(np.sqrt(Xdist*Ydist/len(x))) #define colors, unicolor or value codded color=options.getfieldvalue('quivercol','k') if color=='values': color=datanorm #scaling of arrow length (giving info to change as it seems that there is no better way to work arround it) scale=options.getfieldvalue('scaling',scaler) print('the current value for "scaling" is {}, increase it to shorten the arrows'.format(scale)) #sizing of the arrows width=options.getfieldvalue('width',5.0e-3) headwidth=options.getfieldvalue('headwidth',6) headlength=options.getfieldvalue('headlength',headwidth) #set the unit to the smaller of the two axes if Xdist>Ydist: units='height' else: units='width' if type(color)==str: Q=ax.quiver(x,y,vx,vy,color=color, scale=scale,scale_units='xy', units=units,headwidth=headwidth,headlength=headlength,width=width, angles='xy') else: if options.exist('colornorm'): norm=options.getfieldvalue('colornorm') if options.exist('colormap'): cmap=options.getfieldvalue('colormap') Q=ax.quiver(x,y,vx,vy,color,cmap=cmap,norm=norm, scale=scale,scale_units='xy', units=units,headwidth=headwidth,headlength=headlength,width=width, angles='xy') return Q