Take the 2-minute tour ×
Mathematica Stack Exchange is a question and answer site for users of Mathematica. It's 100% free, no registration required.

I want to use ListAnimate to show an animation but I want to remove the slider and all of the buttons from the top and show the animation panel only. There is an AppearanceElements -> None option but it doesn't remove the slider and the other buttons. How can I remove all of the controls?

share|improve this question
    
Just a note: ControlType->None will do this but there will be no animation but only a rasterized image. –  Kuba Apr 26 at 9:56
    

3 Answers 3

up vote 12 down vote accepted

If you look at underlying code:

ListAnimate[Table[Plot[Sin[n x], {x, 0, 10}], {n, 25}]] // InputForm

at the end you'll find:

enter image description here

which leads to a trick:

ListAnimate[Table[Plot[Sin[n x], {x, 0, 10}], {n, 25}]] /. 
 HoldPattern[AppearanceElements -> _] -> (AppearanceElements -> None)

enter image description here

In the spirit of @Mr.Wizard comment you can also do something like:

ListAnimate[Table[Plot[Sin[n x], {x, 0, 10}], {n, 25}], 
  Paneled -> False] /. (AppearanceElements -> _) -> (AppearanceElements -> {})

which a bit changes things.

share|improve this answer
2  
Nice trick. You don't need HoldPattern by the way. This still leaves the space for the controls; can you remove that too? –  Mr.Wizard Oct 14 '12 at 9:25
1  
@Mr.Wizard thanks :) hmmm... not sure about space. I added something at the end of the answer. –  Vitaliy Kaurov Oct 14 '12 at 9:43
2  
If you cannot apply AppearanceElements->None directly as an option, surely that must be a bug? –  Mike Honeychurch Oct 14 '12 at 23:59
    
@MikeHoneychurch I'll see what I can find out. –  Vitaliy Kaurov Oct 15 '12 at 0:07

Since

ListAnimate generates a Manipulate object containing an Animator (docs)

With explicit lists as input, say,

 list = Table[Plot[Sin[x + n], {x, 0, 3 Pi}], {n, 0, 2 Pi, Pi/20}];

the animation produced by ListAnimate[list...] can also be produced using Manipulate or Animator specifying the Animator option settings directly (instead of post-processing the Manipulate object generated by ListAnimate).

Manipulate[list[[k]], {{k, 1, ""}, 1, Length[list], 1,
      ControlType -> Animator, AnimationRate -> 15, 
      AnimationRunning -> True, AppearanceElements -> {}},
  AppearanceElements -> None, Paneled -> False]

or

DynamicModule[{j},
  Column[{Animator[Dynamic[j], {1, 10, 1}, 15, 
       AnimationRunning -> True, AppearanceElements -> None], 
  Dynamic[list[[j]]]}]]
share|improve this answer
    
Mr.W: edited to use a pre-generated list as input. –  kguler Oct 14 '12 at 11:59

I don't know how to do that. Perhaps you are open to an alternative?

animate[list_List, rate_?Positive] := DynamicModule[{x = list},
  Dynamic[First[x = RotateLeft@x], UpdateInterval -> 1/rate, TrackedSymbols -> {}]]

list = Table[Plot[Sin[x + n], {x, 0, 3 Pi}], {n, 0, 2 Pi, Pi/20}];

animate[list, 15]

enter image description here

share|improve this answer
    
It's too slow on my machine but it's what I am looking for. ListAnimate looks 10x faster to me. I want to make an interactive user interface, so being fast is a must. –  Mohsen Oct 14 '12 at 9:07
    
@Mohsen Yes, I see now that it's not very smooth. –  Mr.Wizard Oct 14 '12 at 9:29

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.