Hi David,

El sáb, 06-02-2010 a las 10:21 -0800, David Arnold escribió:
> Hi Eric,
> 
> Matlab has two commands, comet and comet3, that animate the path. They are 
> used as in the following Matlab code:
> 
> t=linspace(0,2*pi,2000);
> x=-sin(t);
> y=cos(t);
> comet(x,y)

You can just write the function:

import matplotlib.pyplot as plt

def comet(x, y, fmt='', step=1, **kwargs):
    l, = plt.plot(x, y, fmt, **kwargs)
    num_points = len(x)
    for i in xrange(1, num_points + 1, step):
        l.set_data(x[:i], y[:i])
        plt.draw()
    l.set_data(x, y)
    plt.draw()

I think this could be better done using animation features of
matplotlib, but I never used them and I think they varies across
toolkits. Search the docs for animation examples anyway.

Goyo

> 
> What then happens is the path is drawn "live", as in my python code below.
> 
> This is especially useful when teaching parametric equations in calculus. A 
> typical question in that section might be: "find a parametrization for the 
> unit circle that starts at (0,1) and moves around the circle one time in the 
> counterclockwise direction." In this situation, the following is not helpful:
> 
> t=linspace(0,2*pi,2000);
> x=-sin(t);
> y=cos(t);
> plot(x,y)
> 
> Because the student just sees sees the "finished" path. The comet command, on 
> the other hand, allows the student to "see" that path as it is traced out in 
> real time.
> 
> David.
> 
> On Feb 6, 2010, at 9:09 AM, Eric Firing wrote:
> 
> > David Arnold wrote:
> >> All,
> >> I am still wondering why there is no comet command in matplotlib. I was 
> >> successful with the following:
> >> import matplotlib.pyplot as plt
> >> import numpy as np
> >> len=200
> >> t=np.linspace(0,2*np.pi,len)
> >> x=np.cos(t)
> >> y=np.sin(t)
> >> xd=[x[0]]
> >> yd=[y[0]]
> >> l,=plt.plot(xd,yd)
> >> plt.axis([-1,1,-1,1])
> >> for i in np.arange(1,len):
> >>    xd.append(x[i])
> >>    yd.append(y[i])
> >>    l.set_xdata(xd)
> >>    l.set_ydata(yd)
> >>    plt.draw()
> >>    
> >> plt.show()
> >> But it seems that a comet function added to the matplotlib library would 
> >> greatly simplify things for students using the interactive pylab in 
> >> ipython.
> > 
> > I don't understand--what's the point of the example?  What is "comet", and 
> > how does it simplify anything?
> > 
> > Eric
> > 
> 
> 
> ------------------------------------------------------------------------------
> The Planet: dedicated and managed hosting, cloud storage, colocation
> Stay online with enterprise data centers and the best network in the business
> Choose flexible plans and management services without long-term contracts
> Personal 24x7 support from experience hosting pros just a phone call away.
> http://p.sf.net/sfu/theplanet-com
> _______________________________________________
> Matplotlib-users mailing list
> Matplotlib-users@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/matplotlib-users



------------------------------------------------------------------------------
The Planet: dedicated and managed hosting, cloud storage, colocation
Stay online with enterprise data centers and the best network in the business
Choose flexible plans and management services without long-term contracts
Personal 24x7 support from experience hosting pros just a phone call away.
http://p.sf.net/sfu/theplanet-com
_______________________________________________
Matplotlib-users mailing list
Matplotlib-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/matplotlib-users

Reply via email to