Re: Plotting colorfunctions over multiple parametric curves
- To: mathgroup at smc.vnet.net
- Subject: [mg125240] Re: Plotting colorfunctions over multiple parametric curves
- From: "djmpark" <djmpark at comcast.net>
- Date: Thu, 1 Mar 2012 05:36:10 -0500 (EST)
- Delivered-to: l-mathgroup@mail-archive0.wolfram.com
- References: <2205388.63106.1330519615741.JavaMail.root@m06>
Andrew, The proper procedure is to set ColorFunctionScaling to False, and then use the Rescale function to map the potential range onto the interval 0 to 1. n = 3; XYR = ({{-2.1, 0, 1.0}, {0, 0, 0.5}, {2.1, 0, 1.0}}); x[i_] := XYR[[i, 1]]; y[i_] := XYR[[i, 2]]; r[i_] := XYR[[i, 3]]; potential[theta_, i_] := theta + 1.0; circle[i_, theta_] := {x[i] + r[i]*Cos[theta], y[i] + r[i]*Sin[theta]}; Show[ Table[ ParametricPlot[circle[i, theta], {theta, 0, 2 Pi}, PlotStyle -> Thick, Axes -> False, ImageSize -> 200, ColorFunction -> Function[{x, y, theta}, ColorData["TemperatureMap"][ Rescale[potential[theta, i], {1, 2 \[Pi] + 1}]]], ColorFunctionScaling -> False], {i, 1, n}], PlotRange -> All] The plotting could be done a little more simply using the Presentations application. <<Presentations` Draw2D[ {Thick, ParametricDraw[circle[#, theta], {theta, 0, 2 \[Pi]}, ColorFunction -> Function[{x, y, theta}, ColorData["TemperatureMap"][ Rescale[potential[theta, #], {1, 2 \[Pi] + 1}]]], ColorFunctionScaling -> False ] & /@ {1, 2, 3}}, ImageSize -> 200] David Park djmpark at comcast.net http://home.comcast.net/~djmpark/index.html From: Andrew Green [mailto:kiwibooga at googlemail.com] Hi Bob Thanks for the reply. I am a step further thank you, but the results are strange. It is as if the colorfunction is clipping values below 0 and above 1 - it is not scaling even if ColorFunctionScaling->true is added. Consider potential[theta_,i_] = theta+1.0, I would have expected you should still get a full rainbow of colors (0 to 2pi mapped to 0 to 1), instead all are red. n = 3; XYR = ( { {-2.1, 0, 1.0}, {0, 0, 0.5}, {2.1, 0, 1.0} } ); x[i_] := XYR[[i, 1]]; y[i_] := XYR[[i, 2]]; r[i_] := XYR[[i, 3]]; potential[theta_, i_] := theta + 1.0; circle[i_, theta_] := {x[i] + r[i]*Cos[theta], y[i] + r[i]*Sin[theta]}; Show[Table[ ParametricPlot[circle[i, theta], {theta, 0, 2 Pi}, PlotStyle -> Thick, Axes -> False, ImageSize -> 200, ColorFunction -> Function[{x, y, theta}, ColorData["TemperatureMap"][potential[theta, i]]], ColorFunctionScaling -> True], {i, 1, n}], PlotRange -> All] Any ideas why? Thanks - Andrew