I have a function $F$ that maps the xyz space to a set of reals, more clearly:
$c = F[x,y,z]$
Where $c$,$x$,$y$ and $z$ are reals.
What are the possible ways of visualizing this 3d function in Mathematica? (if possible, please post a how-to-do-it)
Answer
One possible way is to use Graphics3D with Point and color points by function value so it's like density plot 3d. For example,
xyz = Flatten[
Table[{i, j, k}, {i, 1, 10, .35}, {j, 1, 10, .35}, {k, 1,
10, .35}], 2];
f[x_, y_, z_] := x^2 y Cos[z]
Graphics3D[
Point[xyz, VertexColors -> (Hue /@ Rescale[f[##] & @@@ xyz])],
Axes -> True, AxesLabel -> {x, y, z}]
Another possible choice is just thinking one parameter as time variable and use Manipulate:
Manipulate[Plot3D[f[x, y, z], {x, 1, 10}, {y, 1, 10}], {z, 1, 10}]
There should be many other way to visualize 4d data, but it's really depending on what you want to see and how you want to visualize.
Like amr suggested, you can also use Image3D or Raster3D:
values = Rescale[
Table[f[i, j, k], {i, 1, 10, .2}, {j, 1, 10, .2}, {k, 1, 10, .2}]];
Graphics3D[Raster3D[values, ColorFunction -> Hue]]
Image3D[values, ColorFunction -> Hue]
Image3D[values]
Comments
Post a Comment