MathGroup Archive 2009

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

Search the Archive

Re: newbie: programmatic sequence of plots?

  • To: mathgroup at smc.vnet.net
  • Subject: [mg96962] Re: newbie: programmatic sequence of plots?
  • From: Albert Retey <awnl at gmx-topmail.de>
  • Date: Sat, 28 Feb 2009 06:42:31 -0500 (EST)
  • References: <go0j4b$n0o$1@smc.vnet.net> <go31og$fga$1@smc.vnet.net> <go8hs9$kvm$1@smc.vnet.net>

Tom Roche wrote:
> Sjoerd C. de Vries Wed, 25 Feb 2009 09:05:27 +0000 (UTC)
>> Loops themselves only have a null return value.
> 
> Doh! I was assuming ListPlot would have a "side effect."
> 
> Albert Retey Wed, 25 Feb 2009 09:06:32 +0000 (UTC)
>> return a list of these plots additionaly or instead of just
>> printing them, so that you can use ListAnimation or TabView or
>> whatever you like for displaying them.
> 
> And the way to do that is
> 
> "m.g." Wed, 25 Feb 2009 09:07:28 +0000 (UTC)
>> Clear[a, y, y0, nRecurr, yinit, yinc, yfinal];
>> a = 3.5;
>> nRecurr = 50;
>> yinit = 0.1;
>> yinc = 0.01;
>> yfinal = 0.2;
>> out = {};             (*  modification here *)
>> For[y0 = yinit, y0 <= yfinal, y0 += yinc,
>>   AppendTo[out,       (*  modification here *)
>>     ListPlot[
>>      RecurrenceTable[{y[n + 1] == a y[n] (1 - y[n]), y[0] == y0},
>>       y, {n, 1, nRecurr}]]];
>>   ];
>> out                   (*  modification here *)
> 
> So I modified that to do
> 
> For[y0 = yinit, y0 <= yfinal, y0 += yinc,
>   AppendTo[out,
>     ListPlot[
>       RecurrenceTable[{y[n + 1] == a y[n] (1 - y[n]), y[0] == y0},
>         y, {n, 1, nRecurr}], Joined -> True
>     ]
>   ];
> ];
> ListAnimate[out]
> 
> which is even better than printing a list of static plots.

just another suggestion for improvement: In Mathematica loops are often
only the second best solution, and using AppendTo within a loop is
rather inefficient (probably not a problem in this example).

I think this is close to what you would use after using Mathematica for
a while:

plotlst = Table[
   ListPlot[
    RecurrenceTable[{y[n + 1] == a y[n] (1 - y[n]), y[0] == y0},
     y, {n, 1, nRecurr}],
    Joined -> True
    ],
   {y0, yinit, yfinal, yinc}
   ];
ListAnimate[plotlst]


(I haven't tested the code, but think it should work)
hth,

albert


  • Prev by Date: Re: Show problem: combining ListPlot and Plot
  • Next by Date: Re: procedures
  • Previous by thread: Re: newbie: programmatic sequence of plots?
  • Next by thread: Difference Fit vs. Correlation