From a simulation (solid state physcis) i obtained a list1={{300,0,0},...}
with x values=300,400,...,1500
and y-values=0,0.08,...,20 and z values. I plotted them using ListPlot3D
.
I want to investigate the change in z value for fixed y, i.e. does z value change a lot for a given y in the range of all x values.
Therefore I want to make a coloring like this:
- If z' value of {x',y',z'} is equal to z value at {x=300,y',z} then it should be Gray
- If z' value of {x',y',z'} is lower than z value at {x=300,y',z}: going from Yellow to Red
- If z' value of {x',y',z'} is higher than z value at {x=300,y',z}: going from Green to Blue
How can I do that?
I tried the following:
Manipulation of list1 to get list2={0,0.3,...}, which has same amount of elements as points (x,y,z) in list1 and same ordering,
The values in list2 are 0.5 when point at same position in list1 satiesfies 1)
The values in list2 are < 0.5 when point at same position in list1 satiesfies 2)
The values in list2 are > 0.5 when point at same position in list1 satiesfies 3)
I tried to use a colorfunction:
colorf = Blend[{{0, Blue}, {0.49, Green}, {0.5, Gray},{0.51, Yellow}, {1,Red}}, #] &;
ListPlot3D[list1,ColorFunction->colorf/@ list2]
I do get a coloring but not the correct one. I checked by exchanging all z values in list1 with values in list2 and made a density plot and colors are at different postions.
Is there any solution to make the color like I want to have it?
list1
, and could you post pictures of what you've tried, and then explain why you're not satisfied with your pictures. $\endgroup$