From: Oz N. <na...@gm...> - 2008-09-25 13:15:56
|
Hi, Thanks for your reply and appologies for my late response. This indeed does the job. But after playing a little bit with the code, I have discovered a few things: first, I'd rather work with lists not tuples so I could actually change my huge array of points. second the array I described is kind of a pseudo 2D: It has one big row. head = [[0, 0, 10], [1, 0, 13], [2, 0, 11], [3, 0, 12], [1, 2, 11]] When I try to use a 3D array, with rows and columns import pylab as pl head = [[[0, 0, 10], [0, 1, 13]], [[1, 0, 11], [1, 1, 12]], [[2, 1, 11], [2, 2, 14]]] x, y, z = zip(*head) xi, yi = pl.arange(0, 4, 0.1), pl.arange(0, 3, 0.1) g = pl.griddata(x, y, z, xi, yi) pl.scatter(x, y) pl.contour(xi, yi, g) pl.show() I get this error: Traceback (most recent call last): File "asfplot.py", line 9, in <module> x, y, z = zip(*head) ValueError: need more than 2 values to unpack On Sat, Sep 20, 2008 at 2:19 PM, Goyo <goy...@gm...> wrote: > Try something like this: > > import pylab as pl > > head = ((0, 0, 10), > (1, 0, 13), > (2, 0, 11), > (3, 0, 12), > (1, 2, 11)) > > x, y, z = zip(*head) > xi, yi = pl.arange(0, 4, 0.1), pl.arange(0, 3, 0.1) > g = pl.griddata(x, y, z, xi, yi) > pl.scatter(x, y) > pl.contour(xi, yi, g) > > Level values are automatically chosen in this example but you can > provide the number of values or a sequence of them. > > Note that no extrapolation is done outside convex hull defined by input > data. > > Goyo > > El sáb, 20-09-2008 a las 11:13 +0200, Oz Nahum escribió: > > I'm trying again to understand how to plot scattered data from array into > > contour graph. > > I looked at > > > http://www.scipy.org/Cookbook/Matplotlib/Gridding_irregularly_spaced_data > > and I understand I have to grid my data. However, in most samples the > plot > > is of a function. > > Let's say I want to plot some geological data, suppose water table > head, and > > I have the following 3D aray > > x y head > > head = ((0, 0, 10), > > (1, 0, 13), > > (2, 0, 11), > > (3, 0, 12), > > (1, 2, 11)) > > matplotlib has lot's of restrictions about how I can plot and > interpolate > > the data, which causes a lot of confusion in my side... > > I'll be happy if someone could supply me a clue of how to plot > contours of > > data which comes in arrays or raster format and not an equation. > > Thanks, > > Oz > > > > ------------------------------------------------------------------------- > > This SF.Net email is sponsored by the Moblin Your Move Developer's > challenge > > Build the coolest Linux based applications with Moblin SDK & win great > prizes > > Grand prize is a trip for two to an Open Source event anywhere in the > world > > http://moblin-contest.org/redirect.php?banner_id=100&url=/ > > _______________________________________________ > > Matplotlib-users mailing list > > Mat...@li... > > https://lists.sourceforge.net/lists/listinfo/matplotlib-users > > -- .''`. : :' : We are debian.org. Lower your prices, `. `' surrender your code. `- We will add your hardware and software distinctiveness to our own. Resistance is futile. ---- Imagine there's no countries It isn't hard to do Nothing to kill or die for And no religion too Imagine all the people Living life in peace ---- You all must read 'The God Delusion' http://en.wikipedia.org/wiki/The_God_Delusion --- when one person suffers from a delusion it is called insanity. When many people suffer from a delusion it is called religion." Robert Pirsig, Zen and the Art of Motorcycle Maintenance |