MathGroup Archive 2011

[Date Index] [Thread Index] [Author Index]

Search the Archive

Re: Contour line colors from z coord of a 3D plot

  • To: mathgroup at smc.vnet.net
  • Subject: [mg117173] Re: Contour line colors from z coord of a 3D plot
  • From: Helen Read <readhpr at gmail.com>
  • Date: Thu, 10 Mar 2011 16:01:50 -0500 (EST)
  • References: <ilacfg$23d$1@smc.vnet.net>

You might also want to draw the contours on the surface itself, which 
you can do using MeshFunctions.

Module[{f, cvals}, f[x_, y_] := Log[x + I y];
  cvals = Range[-3, 1, 0.3];
  logre = Show[
    Plot3D[Re[f[x, y]], {x, -2.4, 2.4}, {y, -2, 2},
     PlotStyle -> Opacity[0.7], Axes -> True, Boxed -> True,
     PlotRange -> {Automatic, Automatic, {-3, 4}},
     ColorFunction -> (Blend[{Yellow, Purple}, #3] &),
     MeshFunctions -> {#3 &}, Mesh -> {cvals}],
    Graphics3D[
     ContourPlot[Re[f[x, y]], {x, -2.4, 2.4}, {y, -2, 2},
        Axes -> False, ContourShading -> None,
        ColorFunction -> (Blend[{Yellow, Purple}, #] &),
        ContourStyle ->
         Table[Directive[Blend[{Yellow, Purple}, i]], {i, cvals}],
        Contours -> cvals][[1]] /. {x : _Real, y : _Real} -> {x,
        y, -3}], ViewPoint -> {2.2, -4, 1.3}, ImageSize -> 300]]



HPR

On 3/10/2011 6:25 AM, Heike Gramberg wrote:
> What you could do is to supply a list of contour values to ContourPlot using the Contours option,
> and then set the colour of each of the contours by setting the ContourStyle option to a corresponding list of colours, e.g.
>
> Module[{f, cvals}, f[x_, y_] := Log[x + I y];
>   cvals = Range[-3, 1, 0.3];
>   logre = Show[
>     Plot3D[Re[f[x, y]], {x, -2.4, 2.4}, {y, -2, 2},
>      PlotStyle ->  Opacity[0.7], Axes ->  True, Boxed ->  True,
>      PlotRange ->  {Automatic, Automatic, {-3, 4}},
>      ColorFunction ->  (Blend[{Yellow, Purple}, #3]&)],
>     Graphics3D[
>      ContourPlot[Re[f[x, y]], {x, -2.4, 2.4}, {y, -2, 2},
>         Axes ->  False, ContourShading ->  None,
>         ColorFunction ->  (Blend[{Yellow, Purple}, #]&),
>         ContourStyle ->
>          Table[Directive[Blend[{Yellow, Purple}, i]], {i, cvals}],
>         Contours ->  cvals][[1]] /. {x : _Real, y : _Real} ->  {x,
>         y, -3}], ViewPoint ->  {2.2, -4, 1.3}, ImageSize ->  300]]
>
> Heike.
>
> On 9 Mar 2011, at 11:57, recmath wrote:
>
>> Hi there,
>>
>> I'm trying to reproduce this very cool figure:
>> http://en.wikipedia.org/wiki/File:NaturalLogarithmRe.png
>>
>> Problem: I can't get the contour lines color-matched to the 3D
>> surface, which is colored according to it's height. My code is below,
>> can anyone help?
>>
>>
>> Module[{f}, f[x_, y_] := Log[x + I y];
>>
>> logre = Show[Plot3D[Re[f[x, y]], {x, -2.4, 2.4}, {y, -2, 2},
>>     PlotStyle ->  Opacity[0.7], Axes ->  True, Boxed ->  True,
>>     PlotRange ->  {Automatic, Automatic, {-3, 4}},
>>     ColorFunction ->  (Blend[{Yellow, Purple}, #3]&)],
>>    Graphics3D[
>>     ContourPlot[Re[f[x, y]], {x, -2.4, 2.4}, {y, -2, 2},
>>        Axes ->  False, ContourShading ->  None,
>>        ContourStyle ->  Purple][[
>>       1]] /. {x : _Real, y : _Real} ->  {x, y, -3}],
>>    ViewPoint ->  {2.2, -4, 1.3}, ImageSize ->  300
>>    ]
>> ]
>>
>




  • Prev by Date: Re: How to kill slave kernel securely?
  • Next by Date: Re: what's new in 8.0.1?
  • Previous by thread: Re: Contour line colors from z coord of a 3D plot
  • Next by thread: Re: Contour line colors from z coord of a 3D plot