How to make an animation in SymPy using Python

  • #1
669
55

Main Question or Discussion Point

I want to make an animation where a (red) ball departs from (0,0) and draws the function ##f(x) = sin x##

This is what I know:

How to plot ##f(x) = sin x##

Captura de pantalla (573).png


To do so I followed instructions from the worksheet. Actually I'd have done:

Captura de pantalla (575).png


But I guess they want to me to it in that way because I have to do less work while coding for the red dot to draw the entire sine curve.

Now to plot just a piece of the function:

Captura de pantalla (574).png

If we set i=50 and x runs from 0 to 200, we are aiming at plotting just 1/4 of ##f(x) = sin x## .

The line ax.plot(X, Y, 'o', color='red') locates the point at i=50 (I guess 'o' is just the command for the point).

But now, how can I code such an animation of ##f(x) = sin x## from (0,0)? I have read I should import:

import matplotlib.animation as animation

I've been looking for exercises on animations in SymPy in Python but found nothing.

Any help is appreciated.
 

Answers and Replies

  • #3
306
168
I think that SymPy has nothing to do with animations. It is a functionality of matplotlib. You may want to check this link describing it. You can find there several examples, providing full code. It should be easy to pick one and rewrite it for your needs.
 
  • Informative
Likes JD_PM
  • #4
669
55
I think that SymPy has nothing to do with animations. It is a functionality of matplotlib. You may want to check this link describing it. You can find there several examples, providing full code. It should be easy to pick one and rewrite it for your needs.
Thanks, in that link I found what I was looking for. There's a final issue now.

Screenshot (333).png


How can I make the leading point red?
 
  • #5
306
168
You should have second line element (matplotlib.lines.Line2D) for the red dot to be updated in your "update" function. In the third line of the code from your screenshot, you get only one line element, that is your blue line. So you should create an empty list of the line elements and using the "append()" method to add new line elements as many as you may need them to update.

Here is an example (including also a text field updated in the graph):
https://stackoverflow.com/questions/20624408/matplotlib-animating-multiple-lines-and-text?rq=1
 
  • Like
Likes JD_PM

Related Threads on How to make an animation in SymPy using Python

Replies
6
Views
821
Replies
2
Views
2K
Replies
21
Views
1K
Replies
1
Views
1K
Replies
1
Views
548
Replies
1
Views
353
Replies
2
Views
1K
  • Last Post
Replies
2
Views
2K
Replies
1
Views
407
Top