Python How to make an animation in SymPy using Python

207
14
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.
 
217
105
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.
 
207
14
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?
 
217
105
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):
 

Want to reply to this thread?

"How to make an animation in SymPy using Python" You must log in or register to reply here.

Physics Forums Values

We Value Quality
• Topics based on mainstream science
• Proper English grammar and spelling
We Value Civility
• Positive and compassionate attitudes
• Patience while debating
We Value Productivity
• Disciplined to remain on-topic
• Recognition of own weaknesses
• Solo and co-op problem solving
Top