Plotting 3D Function with Color Saturation in Mathematica

  • Context: Mathematica 
  • Thread starter Thread starter rohanprabhu
  • Start date Start date
  • Tags Tags
    Mathematica Plotting
Click For Summary

Discussion Overview

The discussion revolves around plotting a 3D function in Mathematica where the color saturation at each point is determined by a function of the coordinates. Participants explore various approaches to visualize this concept, including the use of density plots and the manipulation of color based on function values.

Discussion Character

  • Exploratory
  • Technical explanation
  • Conceptual clarification
  • Debate/contested

Main Points Raised

  • One participant seeks to plot a 3D function where color saturation is defined by a function S = f(x, y, z), desiring maximum saturation at maximum function values and white at minimum.
  • Another participant suggests a surface plot approach, providing an example function and a color function that adjusts based on the z-coordinate.
  • A participant questions the feasibility of assigning colors to every point in a 3D space, emphasizing the need for clarity on whether the data is a continuous function or discrete points.
  • Concerns are raised about visualizing data in a fully opaque manner, suggesting that transparency may be necessary to see data behind the front face of the plot.
  • One participant proposes using spheres or cubes at each coordinate to represent the data visually, drawing from their experience with 3D simulations.
  • Another participant clarifies that the discussion involves manipulating the alpha channel for transparency rather than color saturation, suggesting the use of the Hue function with an alpha parameter.
  • A further suggestion involves defining a separate function for transparency based on coordinates and integrating it into the color function for the plot.

Areas of Agreement / Disagreement

Participants express differing views on how to effectively visualize the 3D function with color saturation and transparency, indicating that multiple competing approaches remain without consensus on the best method.

Contextual Notes

Participants mention limitations related to the representation of data points in a 3D space and the challenges of visualizing overlapping data. There is also a lack of clarity on whether the data is derived from a continuous function or a set of discrete points.

rohanprabhu
Messages
410
Reaction score
2
I want to plot a function in 3D such that the saturation of the color at any point is given by:

[tex] S = f(x, y, z)[/tex]

so, when f(x, y, z) is maximum, i want the color at (x, y, z) to be say saturated Red [rgb(255, 255, 0)] and when it is minimum, i want the color to be white.

How do i do that in Mathematica?
 
Physics news on Phys.org
Are you talking about a surface in 3D colored? Or more like a density plot, say random particles.

If its the first:

F[x_, y_] = x/Exp[x^2 + y^2];
Plot3D[F[x, y], {x, -2, 2}, {y, -2, 2},
ColorFunction -> Function[{x, y, z}, RGBColor[1, 1 - z, 1 - z]]]

Sort of does what you ask.
 
Well.. in the example you gave, the function represents a set of points which satisfy a given condition. However, i want that each and every point is assigned a color, based on the co-ordinates of the point. How do i do that?
 
So you mean like a 3D density plot. If it drew a pixel at every coordinate, how would you see anything behind the front face of the data? Or are you looking for something like, at certain points its transparent and at others its not?

Because if its fully opaque you'll only see the bounds of the plot and no data inside. Even so I'll try to do it. I'm thinking your best approach (since there's no such thing as DensityPlot3D) is to have it draw a sphere or cube at each coordinate and color accordingly.

I've done something like this before when trying to make graphics for some 3D Crystalline grain growth simulations. Its a pain and I ended up making my own stuff using OpenDX (which I don't really recommend, its difficult).

so I guess let me ask you this, is your data a function of coordinates, or a table of datapoints?
 
K.J.Healey said:
So you mean like a 3D density plot. If it drew a pixel at every coordinate, how would you see anything behind the front face of the data? Or are you looking for something like, at certain points its transparent and at others its not?

Because if its fully opaque you'll only see the bounds of the plot and no data inside. Even so I'll try to do it. I'm thinking your best approach (since there's no such thing as DensityPlot3D) is to have it draw a sphere or cube at each coordinate and color accordingly.

I've done something like this before when trying to make graphics for some 3D Crystalline grain growth simulations. Its a pain and I ended up making my own stuff using OpenDX (which I don't really recommend, its difficult).

so I guess let me ask you this, is your data a function of coordinates, or a table of datapoints?

What I want to do is visualize the behavior of a Spherical Wave. The color at each point should give me the value of the.. let's say Electric Field if it is an EM Wave. Something like:

[tex] X = X_o Sin[k\sqrt{x^2 + y^2 + z^2} + \omega t][/tex]

and i want 't' to be manipulated by the parameter supplied through Animate[] rather than Manipulate[], but that's a different thing. Also, in the above case, the greater 'X' is.. the more opaque i want the color to be.
 
Yeah, that's basically a 3D density plot. I'll keep looking at it, but remember that what you're talking about isn't saturation, its the alpha channel.
The function Hue[h,s,b,a] the last channel is the alpha.
Maybe there's soemthing you can do in the plot where ColorFunction-> something with Hue[50,50,50,F[x,y,z]] or something.
 
Or do something like this:
(Where Alph is the function describing the transparency coordinates as a function of xyz)

F[x_, y_] = x/Exp[x^2 + y^2];
Alph[x_, y_, z_] = z; (*Anything here*)
Plot3D[F[x, y], {x, -2, 2}, {y, -2, 2},
ColorFunction ->
Function[{x, y, z}, RGBColor[1, 0, 0, Alph[x, y, z]]]]
 

Similar threads

  • · Replies 1 ·
Replies
1
Views
3K
  • · Replies 4 ·
Replies
4
Views
3K
  • · Replies 5 ·
Replies
5
Views
3K
  • · Replies 2 ·
Replies
2
Views
3K
  • · Replies 5 ·
Replies
5
Views
2K
  • · Replies 1 ·
Replies
1
Views
3K
  • · Replies 9 ·
Replies
9
Views
3K
  • · Replies 4 ·
Replies
4
Views
2K
  • · Replies 11 ·
Replies
11
Views
3K
  • · Replies 5 ·
Replies
5
Views
3K