From: Stan West <stan.west@nr...>  20120531 18:26:11

> From: Jerzy Karczmarczuk [mailto:jerzy.karczmarczuk@...] > Sent: Sunday, May 27, 2012 12:56 > > Gordon Hardmant : > > I ...cannot find a simple way to stop a curve being drawn once it crosses > > another curve. In the attached example, I am trying to draw the solid > > curve only until it intersects the dashed one. I have tried using the > > numpy.where() method, but it does not seem to be the right way to go > > about it I end up having to write FOR loops and so on, and that does > > not make use of the vectorization advantages of numpy. > Try to insert just before plot(...) the following two lines: > > igc=np.sign(ig_bdryig_d2) > ig_d2[igc!=igc[1] ]=np.nan Or, if you want to preserve the original data, index it with a boolean array: under = (ig_d2 <= ig_bdry) plt.plot(vg[under], ig_d2[under]) If you need to determine the intersection more precisely, you could define a function of vg, V, L, Ts, and d that returns the difference between ig_CRM and ig_CCM for those parameters, then use a rootfinding routine [1] to numerically find the vg for which that function returns essentially zero. [1] http://docs.scipy.org/doc/scipy/reference/optimize.html#rootfinding 