MathGroup Archive 2006

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

Search the Archive

Re: Graphics--How to plot all functions issued from For loop and

  • To: mathgroup at smc.vnet.net
  • Subject: [mg71829] Re: Graphics--How to plot all functions issued from For loop and
  • From: Jean-Marc Gulliet <jeanmarc.gulliet at gmail.com>
  • Date: Thu, 30 Nov 2006 06:05:37 -0500 (EST)
  • Organization: The Open University, Milton Keynes, UK
  • References: <ekjg15$df7$1@smc.vnet.net>

abdou.oumaima at hotmail.com wrote:
> Hello MathGroup,
> I'd like to plot all functions issued from For Loop then color them automatically. If my loop is =10 it'll be very hard to write all Hue commands and all legends. Is there any way to plot and color and legend all functions automatically. I don't want to do that manually.
> Please Help.
> Many thanks in advance.
> Cheers.
> Lian.

Although the following expression is not fully and nicely craft, it 
should accomplish what you need.

Append[Table[{Hue[n/7], StringReplace[ToString[sin(n x)], "s" -> "S"]}, 
{n, 0, 5}] /. "0" -> 1, {Hue[0.8], "Cos (x)"}]

Just replace your list of pairs {hue, text} by it and change the numbers 
as required by the number of functions you are actually plotting. (See 
the bottom of the mail.)

Regards,
Jean-Marc

> NB: Please copy and past the code bellow into a notebook file to see what I did manually then evaluate it.
> 
> \!\(\*
>   RowBox[{\(<< Graphics`;\), 
>     "\[IndentingNewLine]", \(<< "\<Graphics`Legend`\>";\), 
>     "\[IndentingNewLine]", "\[IndentingNewLine]", \(listps = {};\), 
>     "\[IndentingNewLine]", 
>     RowBox[{
>       RowBox[{"For", "[", 
>         RowBox[{\(k = 0\), ",", \(k \[LessEqual] 5\), ",", 
>           RowBox[{"{", "\[IndentingNewLine]", 
>             RowBox[{
>               RowBox[{"ps", "=", 
>                 RowBox[{
>                   StyleBox["PolarPlot",
>                     FontColor->RGBColor[1, 0, 0]], 
>                   "[", \(Sin[k\ x], {x, \(-Pi\)/2, Pi/2}, 
>                   PlotStyle \[Rule] Hue[\(k - 1\)\/7], 
>                   AxesLabel \[Rule] {\[Theta], \[Psi]}, \ 
>                   DisplayFunction \[Rule] Identity\), "]"}]}], ";", 
>               "\[IndentingNewLine]", 
>               "\[IndentingNewLine]", \(listps = Join[listps, List[ps]]\), 
>               ";"}], "\[IndentingNewLine]", "\[IndentingNewLine]", "}"}], 
>           ",", \(k++\)}], "\[IndentingNewLine]", "]"}], ";"}], 
>     "\[IndentingNewLine]", 
>     RowBox[{
>       RowBox[{"pc", "=", 
>         RowBox[{
>           StyleBox["PolarPlot",
>             FontColor->RGBColor[1, 0, 0]], "[", \(Cos[x], {x, Pi/2, 3\ Pi/2}, 
>           PlotStyle \[Rule] Hue[\ 0.8], \ 
>           AxesLabel \[Rule] {\[Theta], \[Psi]}, \ 
>           DisplayFunction \[Rule] Identity\), "]"}]}], ";"}], 
>     "\[IndentingNewLine]", 
>     "\[IndentingNewLine]", \(ShowLegend[
>         DisplayTogether[listps, pc, Ticks \[Rule] {PiScale, Automatic}, 
>           PlotRange \[Rule] {{\(-Pi\)/2, Pi/2}, Automatic}, 
>           ImageSize \[Rule] 700, 
>           DisplayFunction \[Rule] 
>             Identity], {{{Hue[0], "\<1\>"}, {Hue[1\/7], "\<Sin(x)\>"}, {Hue[
>                 2\/7], "\<Sin(2x)\>"}, {Hue[3\/7], "\<Sin(3 x)\>"}, {Hue[
>                 4\/7], "\<Sin(4 x)\>"}, {Hue[5\/7], "\<Sin(5 x)\>"}, {Hue[
>                 0.8], "\<Cos (x)\>"}}, LegendPosition \[Rule] { .8,  .1}, 
>           LegendSize \[Rule] { .3,  .2}, \ 
>           LegendShadow \[Rule] { .02, \(- .02\)}}];\)}]\)
> 

In[1]:=
<< "Graphics`";
<< "Graphics`Legend`";
listps = {};
For[k = 0, k <= 5, {ps = PolarPlot[Sin[k*x], {x, -Pi/2, Pi/2}, PlotStyle 
-> Hue[(k - 1)/7],
        AxesLabel -> {θ, Ï?}, DisplayFunction -> Identity]; listps = 
Join[listps, {ps}]; }, k++];
pc = PolarPlot[Cos[x], {x, Pi/2, 3*(Pi/2)}, PlotStyle -> Hue[0.8], 
AxesLabel -> {θ, Ï?},
     DisplayFunction -> Identity];
ShowLegend[DisplayTogether[listps, pc, Ticks -> {PiScale, Automatic},
     PlotRange -> {{-Pi/2, Pi/2}, Automatic}, ImageSize -> 700, 
DisplayFunction -> Identity],
    {Append[Table[{Hue[n/7], StringReplace[ToString[sin(n x)], "s" -> 
"S"]}, {n, 0, 5}] /. "0" -> 1,
      {Hue[0.8], "Cos (x)"}], LegendPosition -> {0.8, 0.1}, LegendSize 
-> {0.3, 0.2},
     LegendShadow -> {0.02, -0.02}}];


  • Prev by Date: Re: Graphics--How to plot all functions issued from For loop and
  • Next by Date: Re: Graphics--How to plot all functions issued from For loop and
  • Previous by thread: Re: Graphics--How to plot all functions issued from For loop and
  • Next by thread: Re: Graphics--How to plot all functions issued from For loop and