Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Contour/imshow plot for irregular X Y Z data

Tags:

I have data in X, Y, Z format where all are 1D arrays, and Z is the amplitude of the measurement at coordinate (X,Y). I'd like to show this data as a contour or 'imshow' plot where the contours/color represent the the value Z (amplitude).

The grid for measurements and X and Y look are irregularly spaced.

Many thanks,

len(X)=100

len(Y)=100

len(Z)=100

like image 827
Scientist Avatar asked Nov 18 '14 21:11

Scientist


People also ask

How do you plot in 3D contour?

To plot 3D contour we will use countour3() to plot different types of 3D modules. Syntax: contour3(X,Y,Z): Specifies the x and y coordinates for the values in Z. contour3(Z): Creates a 3-D contour plot containing the isolines of matrix Z, where Z contains height values on the x-y plane.

What is the difference between contour and Contourf?

contour() and contourf() draw contour lines and filled contours, respectively. Except as noted, function signatures and return values are the same for both versions. contourf() differs from the MATLAB version in that it does not draw the polygon edges. To draw edges, add line contours with calls to contour() .

What are contour plots used for?

Contour plots (sometimes called Level Plots) are a way to show a three-dimensional surface on a two-dimensional plane. It graphs two predictor variables X Y on the y-axis and a response variable Z as contours. These contours are sometimes called z-slices or iso-response values.

What is a contour plot data?

A contour plot is a graphical technique for representing a 3-dimensional surface by plotting constant z slices, called contours, on a 2-dimensional format. That is, given a value for z, lines are drawn for connecting the (x,y) coordinates where that z value occurs.


1 Answers

Does plt.tricontourf(x,y,z) satisfy your requirements?

It will plot filled contours for irregularly spaced data (non-rectilinear grid).

You might also want to look into plt.tripcolor().

import numpy as np import matplotlib.pyplot as plt x = np.random.rand(100) y = np.random.rand(100) z = np.sin(x)+np.cos(y) f, ax = plt.subplots(1,2, sharex=True, sharey=True) ax[0].tripcolor(x,y,z) ax[1].tricontourf(x,y,z, 20) # choose 20 contour levels, just to show how good its interpolation is ax[1].plot(x,y, 'ko ') ax[0].plot(x,y, 'ko ') plt.savefig('test.png') 

tripcolor and tricontourf example

like image 65
Oliver W. Avatar answered Feb 10 '23 12:02

Oliver W.