MathOverflow is a question and answer site for professional mathematicians. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

I need to graph real valued functions ( for exposition and analysis) the issue is the independent variables are more so that the conventional graphing method cant be used and further i don't want to slice the function.

  1. These functions are like s =f1(x,y,z,t) and s= f2(x,y,z,t,k)
  2. I also have vector functions of the same type v = g1 (x,y,z,t) and v = g2 (x,y,z,t,k)

The motivation is to see the function intuitively at one go and may be compare them. I know that the the limitations of physical dimensions is there. Domain coloring has its own limits in this regard. my question is ...

Q Do we have a visualization methodology for such requirements. It will be a benefit if one could refer to a software tool.

Any thought /suggestion welcome

share|cite|improve this question
I have magnificant results with countourplot3D in Mathematica for functions and vectors depending on 3 independent variables. Maybe something can be done with local surface coloring to interprete the 4th dimension. – John Compter Dec 11 '13 at 19:19
Often in my experience it's not necessary to show 5-way interactions – a 5-input function is really separable, with interesting interactions being 2-way but rarely 3-way. It also pays, imo, to look for ways to reduce dimensionality when you don't absolutely have to use necessarily overwrought visualisation techniques (Chernoff-Fleury faces, symphonies) which, like a time-lapse not over time, are entertaining but not super clear. – isomorphismes Mar 23 '15 at 0:06
up vote 3 down vote accepted

For time-dependent and three-dimensional data, there exist a number of established programs already; among the most popular free and open source ones are Paraview and VisIt. Both support a variety of plots such as isosurfaces, volume rendering or (for vector-valued data) arrow or streamline plots.

They all have a bit of a learning curve, though, and you should not expect to be able to see a four- or five-dimensional function on a two-dimensional screen "at a glance". Visualizing of and and data-mining from high-dimensional data are very active research topics in computational science, though. I would thus suggest thinking about what kind of information about your functions you would like to see about your functions, and then ask on the Computational Science SE. (See for example this question.)

share|cite|improve this answer
Using a Perspective rendering / "Volume rendering" ---- 3 Variables (x,y,z) " Using transparency and different colours .. to visually grasp multiple of those surfaces" ------ + 1 var(k) "use the time and animate your plot" ---- +1 var (t) each point represented by 3 Dim color space --- +3 var (u,v,w) We CAN see a 3d vector plot of 5 independent variables – ARi Jun 12 '13 at 16:10
Not quite, because color and transparency is already used to visualize a three-dimensional volume on a two-dimensional screen (that's how volume rendering works), so they are no longer (fully) available for visualizing your other four independent variables. – Christian Clason Jun 12 '13 at 16:35
Thanks any way. – ARi Jun 12 '13 at 16:38
You are very welcome. And if you do succeed in visualizing a 3d vector plot of 5 independent variables, I'd love to see a screenshot :) – Christian Clason Jun 12 '13 at 16:43
New link to VisIt: – Hans Lundmark Aug 15 '15 at 7:20

A picture is worth a thousand words, a movie is worth a thousand pictures, and an interactive app is worth a thousand movies. I would suggest making a picture that dynamically responds to your changing variables. For instance,

lets you type in a function of two complex variables (z and mouse), and you get a phase plot of the function where the z domain is being colored.

I am currently working on an improved version of this which will use webGL, accept arbitrarily many variables (slide points around), and admit several view options (Riemann sphere, 3d graph of modulus colored by phase, ect). This will be used in an online introduction to Complex analysis that I will be helping to run next spring.

Hopefully these ideas help you!

share|cite|improve this answer

If you have a function in three variables $f(x,y,z)$, you can try to plot surfaces solving the equation $f(x,y,z)=r_i$. Using transparency and different colours you might be able to visually grasp multiple of those surfaces at once (choose $r_0,\ldots r_4$ wisely and plot these $5$ surfaces (you also have to choose the perspective accordingly)). For $t$ use the time and animate your plot. But for five variables I have no idea.

I have no practical experience with it, Octave seems to have some support for such implicit surfaces, but I do know whether it will be suffiecient in your case.

share|cite|improve this answer
You are describing isosurfaces, to give a keyword for searching further information. – Christian Clason Jun 12 '13 at 14:56
Using a "video" of the plot for representing time t seems interesting, though I would need to find a good software for it.. Thanks What about vector plot..any ideas are appreciated. – ARi Jun 12 '13 at 15:17

A tool for visualizing functions that is sometimes as powerful as graphs is using mapping diagrams. The simple idea is that each real variable is represented on an independent parallel axis in 3 space. One can place a point in space not on any axis to represent the function and arrows from points on the domain axes to the function point and arrows to points on the target axes corresponding to the values of the function for the domain points.

See Alfred Inselberg. Parallel Coordinates: Visual Multidimensional Geometry and Its Applications (Springer, Oct 8, 2009) for more on multi-dimensionsal connections and for an (draft) introduction to visualizing functions of one variable with mapping diagrams.

share|cite|improve this answer

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.