Mathematica Stack Exchange is a question and answer site for users of Mathematica. It's 100% free, no registration required.

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

I have the following list of parametric equations

lst = {10*Cos[u]*Sin[v], 3*Sin[u]*Sin[v], 2*Cos[v]};

I define the following color function

colFun = Function[{u, v}, Hue[Rescale[dam, {0, 1}]]]; 


dam = Sqrt[(1296*Cos[u]^4*Sin[v]^4)/
           (900*Cos[v]^2 + 36*Cos[u]^2*Sin[v]^2 + 400*Sin[u]^2*Sin[v]^2)^2 +
           (3600*Cos[u]^2*Sin[v]^2*(9*Cos[v]^2 + 4*Sin[u]^2*Sin[v]^2))/
           (900*Cos[v]^2 + 4*(9*Cos[u]^2 + 100*Sin[u]^2)*Sin[v]^2)^2]; 

So I get the following parametric plot

g = ParametricPlot3D[lst, {u, 0, 2*Pi}, {v, 0, Pi},
        Mesh -> False, 
        PlotStyle -> Opacity[0.8],
        ColorFunction -> colFun, 
        ColorFunctionScaling -> False]

What I want now is to create a color bar which will accompany g. This color bar will show the values of

Rescale[dam, {0, 1}]

The coloring of course will be again according to the same defined color function.

I am looking for a solution that works with Mathematica 8.

share|improve this question
You can select each piece of code you wrote, and press the {} button in the editor toolbar. This will fix the formatting of the code. – Szabolcs Jul 4 '14 at 13:13
You can try BarLegend. Something like Legended[g, BarLegend[{colFun,{min,max}}]] – Szabolcs Jul 4 '14 at 13:15
Szabolcs thank you very much for your advices regarding my query and as well as the appearance of the post. – dimitris Jul 4 '14 at 13:19
Unfortunately, I do not have Mathematica 9. I work with version 8. As I saw, BarLegend is a new built-in function introduced in version 9. – dimitris Jul 4 '14 at 13:24
Szabolcs thanks for adding the required tag. – dimitris Jul 4 '14 at 13:30
up vote 4 down vote accepted

This is not a full solution, but it illustrates how I would proceed using Mathematica 8:

colourBar = 
 DensityPlot[y, {x, 0, 1}, {y, 0, 1}, AspectRatio -> 5, 
  PlotRangePadding -> 0, 
  FrameTicks -> {{None, Range[0, 1, .1]}, {None, None}}, 
  ColorFunction -> Hue]

Row[{Show[g, ImageSize -> Medium], 
  Show[colourBar, ImageSize -> Small]}]

enter image description here

It needs extra work to get the formatting right.

You can also look at this package, but I can't offer help with its use.

share|improve this answer
Do you mean now = not?? – bobthechemist Jul 4 '14 at 14:53
@bobthechemist Yes, I did! – Szabolcs Jul 4 '14 at 14:59
Szabolcs I really appreciate your kind interest. Thank you once again. It was exactly what I need! I have only one query. Is is possible to use another "color palette" instead of Hue? If you see the color bar begins with almost Red (for values close to zero) and ends with red. This may be to Hue[0] and Hue[1] both evaluate to red. Graphics[{Hue[0], Disk[]}] – dimitris Jul 4 '14 at 15:24
It would be perfect if for instance orange was closer to red in this "color bar". Is it possible? Should I use a different function in lieu of Hue? – dimitris Jul 4 '14 at 15:32
@dimitris Check the predefined colour palettes (look up ColorData and Color Schemes in the palettes menu), or you can build your own using Blend. – Szabolcs Jul 4 '14 at 15:39

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

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