Re: Q: How to animate a list plot?
- To: mathgroup at smc.vnet.net
- Subject: [mg69558] Re: [mg69500] Q: How to animate a list plot?
- From: János <janos.lobb at yale.edu>
- Date: Fri, 15 Sep 2006 06:46:05 -0400 (EDT)
- References: <200609141055.GAA21519@smc.vnet.net>
On Sep 13, 2006, at 4:09 PM, Coleman, Mark wrote:
> Greetings,
>
> I'm trying to figure out how to develop -- for lack of a better
> term --
> an animated scatter plot. I have three variables, call them x, y,
> and z.
> The points x and y are recorded measurements on the same subjects,
> taken
> at different points in time. The variable z does not change over time.
>
> I'd like to find a way to visualize how the ListPlot[{x,z}]
> transitions
> into the ListPlot[{y,z}]. My sample of data is 250 points, so I am
> trying to visualize 250 points moving from one set of positions on the
> Cartesian plane to another set of positions. The y observations are
> more
> highly correlated with z, so one could image the points becoming more
> tightly clustered as one moves from x->y. Any thoughts on how I might
> show this?
>
> Thanks,
>
> -Mark
My newbie approach to it would be to create a Table of ListPlots,
collapse them and then double click on them. That would show a nice
animation. Another approach might be to create a GraphicsArray and
play it with Show.
Here is an example showing both. I am displaying the #30 cell
automata with some additional ListPlots. After the big Table command
is done - that might take some minutes - you can collapse the
individual plots displayed and after it double-clicking on it you can
see an animation of all on the row.
In[15]:=
k = 2
r = 1
steps = 100
In[18]:=
Off[General::Spell];
Off[General::Spell1];
In[20]:=
<< "DiscreteMath`GraphPlot`";
In[21]:=
ca30 = Table[
CellularAutomaton[
{30, k, r}, Join[
Table[0, {l, 1, i}],
{1}, Table[0, {l, 1,
steps - i}]], steps],
{i, 0, steps}];
In[22]:=
lp30 = Table[
(N[Log[FromDigits[
Reverse[
#1]]]] & ) /@
ca30[[i]], {i, 1, 100}];
In[23]:=
tp30 = Table[
(N[Log[FromDigits[
Reverse[
#1]]]] & ) /@
Transpose[ca30[[i]]],
{i, 1, 100}];
In[24]:=
tl30 = Table[Thread[
{lp30[[i]], tp30[[i]]}],
{i, 1, 100}];
In[25]:=
tlgp30 = Table[
(#1[[1]] -> #1[[
2]] & ) /@ Partition[
tl30[[i]], 2, 1],
{i, 1, 100}];
Here comes the big Table:
In[26]:=
Table[Show[GraphicsArray[
{ArrayPlot[ca30[[i]],
DisplayFunction ->
Identity], ListPlot[
lp30[[i]],
DisplayFunction ->
Identity,
AspectRatio -> 1,
PlotRange -> All],
ListPlot[tp30[[i]],
DisplayFunction ->
Identity,
AspectRatio -> 1,
PlotRange -> All],
ListPlot[tl30[[i]],
DisplayFunction ->
Identity,
AspectRatio -> 1,
PlotRange -> All],
GraphPlot[tlgp30[[i]],
Method ->
SpringElectricalModel\
, DisplayFunction ->
Identity]}],
DisplayFunction ->
$DisplayFunction,
PlotLabel -> {i}],
{i, 1, 100}];
If you want to listen to it not just watch, then:
In[27]:=
(ListPlay[#1] & ) /@ lp30
(ListPlay[#1] & ) /@ tp30
etc....
János
P.S. If you want to see funny things than watch the 5th column for
CA #3, CA #9, CA #11, CA #102 or for CA #110 :)
--------------------------------------------
f @@ # & /@ === f @@@
- References:
- Q: How to animate a list plot?
- From: "Coleman, Mark" <Mark.Coleman@LibertyMutual.com>
- Q: How to animate a list plot?