7
$\begingroup$

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.

$\endgroup$
2
  • $\begingroup$ 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. $\endgroup$ Dec 11, 2013 at 19:19
  • 1
    $\begingroup$ 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. $\endgroup$ Mar 23, 2015 at 0:06

4 Answers 4

4
$\begingroup$

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

$\endgroup$
4
  • $\begingroup$ 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 $\endgroup$
    – ARi
    Jun 12, 2013 at 16:10
  • $\begingroup$ 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. $\endgroup$ Jun 12, 2013 at 16:35
  • $\begingroup$ 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 :) $\endgroup$ Jun 12, 2013 at 16:43
  • 1
    $\begingroup$ New link to VisIt: wci.llnl.gov/simulation/computer-codes/visit $\endgroup$ Aug 15, 2015 at 7:20
4
$\begingroup$

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.

Hopefully these ideas help you!

$\endgroup$
0
2
$\begingroup$

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.

$\endgroup$
2
  • 1
    $\begingroup$ You are describing isosurfaces, to give a keyword for searching further information. $\endgroup$ Jun 12, 2013 at 14:56
  • $\begingroup$ 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. $\endgroup$
    – ARi
    Jun 12, 2013 at 15:17
2
$\begingroup$

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 http://users.humboldt.edu/flashman/MD/section-1.1VF.html for an (draft) introduction to visualizing functions of one variable with mapping diagrams.

$\endgroup$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

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