Ian, Thanks for the response and the example code. I guess what I'm trying to do might be well defined. Here is a plot that should illustrate the data I'm working with:
http://biosport.ucdavis.edu/blog/copy_of_steady_benchmark_tau.png The green and red regions are being displayed by plotting each and every point in my data set that is stable. So the set of points I was describing in my original message looks like these green and red regions. What I would like is just the boundary of the stable region, which maybe isn't a very well defined statement. The convex hull of these points would enclose a part of the x-y plane that isn't stable, so I don't want to include it in my plot. I am thinking that perhaps the approach I should be taking should involve contouring the real part of the eigenvalues which determine the stability, and then plot the zero-level curve. I'll have to think about that some more. Is it clear what I am trying to do? If so, do you think the Delaunay triangulation is the right way to go? ~Luke On Thu, Apr 28, 2011 at 2:14 PM, Ian Thomas <ianthoma...@gmail.com> wrote: > On 28 April 2011 08:51, Luke <hazelnu...@gmail.com> wrote: >> >> I have a set of unstructured (x,y) points which I would like to >> compute a boundary polygon for. I don't want the convex hull. >> >> I was able to use matplotlib.tri to get a Delaunay triangulation for >> my points by following the examples online, but I'm having trouble >> masking everything but the triangles with a boundary edge. >> Additionally, once I get this, I'm not clear on how to plot just the >> boundary. >> >> Here is what it seems like the mask should be, assume triang comes >> from matplotlib.tri.Triangulation(). >> >> mask = np.where(np.where(triang.neighbors < 0, 0, 1).all(axis=1), 1, 0) >> triang.set_mask(mask) >> >> but, when I plot triang using plot.triplot(), or plt.plot() to plot >> the edges, I am getting a bunch of extra stuff that isn't just the >> boundary triangles/edges. >> >> Anybody have example code for properly masking and plotting only the >> boundary edges? >> >> ~Luke > > Luke, > > I am not entirely clear exactly what you want to do, but I'll try to help. > > Your masking of the triangulation masks the triangles not the edges, and so > your triplot call displays those triangles that include a boundary edge but > also the other edges of those triangles. As you say, this isn't what you > want. > > I've attached an example script that follows on from your idea of testing > triang.neighbors to determine the boundary edges, and displays just those > edges. However, this is the convex hull as, by definition, the boundary of > an unconstrained Delaunay triangulation is the convex hull. As you don't > want the convex hull, I am not clear what you want instead. > > If I have misunderstood your requirements and/or you have further questions, > please post your example code as it is much easier for others on the mailing > list to correct existing code than come up with their own freestanding > example. > > I hope some of this helps! > Ian Thomas > -- "Those who would give up essential liberty to purchase a little temporary safety deserve neither liberty nor safety." -- Benjamin Franklin, Historical Review of Pennsylvania, 1759 ------------------------------------------------------------------------------ WhatsUp Gold - Download Free Network Management Software The most intuitive, comprehensive, and cost-effective network management toolset available today. Delivers lowest initial acquisition cost and overall TCO of any competing solution. http://p.sf.net/sfu/whatsupgold-sd _______________________________________________ Matplotlib-users mailing list Matplotlib-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/matplotlib-users