Display a Function of Two Variables
QUESTION: I have two vectors, X and Y, and I would like to display a function of these two vectors, f(X,Y), as an image with a colorbar representing the values of the function. Can you help me do this?
ANSWER: The only trick here is to know how to construct the appropriate 2D arrays from your X and Y vectors. Dimensional juggling skills are the essential arrows you need in your quill.
First, let's construct a couple of vectors to illustrate. In this particular case, the X vector will have 51 elements and the Y vector will have 26 elements.
x = Findgen(51) y = RandomU(-3L, 26) * 10
Now we use our dimensional juggling skills to create 2D arrays of the X and Y vectors.
xarray = Rebin(x, 51, 26) yarray = Rebin(Reform(y, 1, 26), 51, 26)
Next, we create the function of these two variables.
f = xarray^2 - 3*yarray^3 + 2*(xarray + yarray)
Finally, we display the function of these two variables as an image, along with a color bar representing the value of the function. We use the Coyote Library routines TVImage and FSC_Colorbar in this step.
LoadCT, 39, /SILENT TVImage, BytScl(f, TOP=254), Position=[0.1, 0.1, 0.9, 0.75], $ AXES=1, /ERASE, BACKGROUND='charcoal' FSC_Colorbar, RANGE=[Min(f), Max(f)], FORMAT='(F0.2)', NCOLORS=254
You can see the results in the figure below.
A function of two variables displayed as an image. |
Naturally, you can also display this function as a surface or contour plot if you would prefer.
Version of IDL used to prepare this article: IDL 7.0.3.
Copyright © 2009 David W. Fanning
Last Updated 25 June 2009