I may be a bit thick, but I am having a heck of a time figuring out how to

use contour() properly.

Specifically, I do not see why the z dimension should be a 2d array.

It should only take a set of x,y,z

coordinates to produce a surface -- what is the extra dimension for? More

importantly, how do I take

"canonical" 3-d data, e.g.:

x y z

1 1 2.3

1 2 4.5

1 3 6.1

2 1 7.3

.

.

.

and get it into the form that matplotlib demands?

Thanks,

cf

Chris,

The point is that contouring and gridding are two entirely separate operations--and this is true in general, not just for matplotlib. Contouring algorithms--at least all the ones I have looked at--work with data on a regular grid. There are many ways to map scattered data to a regular grid, so it makes sense to do this as a separate step, so you can choose a gridding method that works well for your particular type of data set. See http://www.scipy.org/Cookbook/Matplotlib/Gridding_irregularly_spaced_data

Now, if your data are already on a quadrilateral grid, as in the example you give, but your arrays have been flattened, then all you need to do is reshape your arrays so that they are 2-D, with the row number corresponding to Y (vertical on the plot) and the column index corresponding to X (horizontal). Filling in your example below to include 2 values of x, and assuming all three variables are numpy ndarrays, you could do something like this:

x.shape = 2,3

y.shape = 2,3

z.shape = 2,3

contour(x.transpose(), y.transpose(), z.transpose())

The transposes are needed because your original z is arranged with y varying fastest.

Eric

Chris wrote:

## ยทยทยท

I may be a bit thick, but I am having a heck of a time figuring out how to use contour() properly. Specifically, I do not see why the z dimension should be a 2d array. It should only take a set of x,y,z coordinates to produce a surface -- what is the extra dimension for? More importantly, how do I take "canonical" 3-d data, e.g.:

x y z

1 1 2.3

1 2 4.5

1 3 6.1

2 1 7.3

.

and get it into the form that matplotlib demands?

Thanks,

cf

-------------------------------------------------------------------------

Check out the new SourceForge.net Marketplace.

It's the best place to buy or sell services for

just about anything Open Source.

http://sourceforge.net/services/buy/index.php

_______________________________________________

Matplotlib-users mailing list

Matplotlib-users@lists.sourceforge.net

https://lists.sourceforge.net/lists/listinfo/matplotlib-users