# Visualizing functions with a number of independent variables

I need to graph real valued functions (for exposition and analysis). The issue is: there are more independent variables so that the conventional graphing methods can't be used, and furthermore I don't want to slice the functions.

1. These functions are like $s=f_1(x,y,z,t)$ and $s=f_2(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 functions intuitively at one go and maybe compare them. I know that there is a limitation of physical dimensions. Domain coloring has its own limits in this regard. My question is:

Do we have a visualization methodology for such requirements?

It will be a benefit if one could refer to a software tool.

Any thoughts/suggestions are welcome.

• 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

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.)

• 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
• 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: wci.llnl.gov/simulation/computer-codes/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,

http://www.math.osu.edu/~fowler.291/phase/

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.

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.