thanks for the answer.
it's slow, but acceptable.
If it was possible to update it faster, that would have been better,
but it's ok.

I do not know if it's because of pyqt or not, but the
self.fig.canvas.draw() takes around 1s, and then, there is another
extra time before the plot actually get updated.
I mean, visually.


2010/9/8 Philippe Crave <philippe.cr...@gmail.com>:
> ---------- Forwarded message ----------
> From: Eric Firing <efir...@hawaii.edu>
> Date: 2010/9/8
> Subject: Re: [Matplotlib-users] draw after set_data
> To: matplotlib-users@lists.sourceforge.net
>
>
> On 09/07/2010 07:33 PM, Philippe Crave wrote:
>> hi,
>>
>> sorry to bring this up again.
>> style haven't found how to draw my plot faster than
>> self.fig.canvas.draw(), after a set_data()
>
> If you need to change the scale of the plot when you update the data,
> then I don't see any alternative to redoing the whole plot.  If that is
> too slow, then mpl may simply be the wrong tool for the job.  Parts of
> mpl have been nicely optimized for speed, but generating a large number
> of subplots is not among them.  I don't expect this will change any time
> soon.  The tick generation and labeling is the main time sink. If I
> generate 20 blank subplots, with default ticks and labels, each draw
> takes 420 ms on my machine.  If I set all the ticks to the empty list,
> it drops to 34 ms.
>
> Eric
>
>>
>> thanks
>>
>> 2010/9/1 Philippe Crave<philippe.cr...@gmail.com>:
>>> Hi,
>>>
>>> I use qt4 backend.
>>> I update some lines doing something like that:
>>>
>>>    def draw_curves(self, datas, x):
>>>        for y in datas:
>>>            self.lines[i].set_data(x, y)
>>>            min_y, max_y = self.min_max(y)
>>>            self.ax[i].axis((0, x[-1], min_y, max_y))
>>>            #self.ax[i].draw_artist(self.lines[i])
>>>            #self.fig.canvas.blit(self.ax[i].bbox)
>>>        self.fig.canvas.draw()
>>>
>>>
>>> the self.fig.canvas.draw() is very slow. (I have 20 subplot in that figure).
>>> I tried to use:
>>>            self.ax[i].draw_artist(self.lines[i])
>>>            self.fig.canvas.blit(self.ax[i].bbox)
>>> it's very fast. But it does not update the scale of the plot.
>>> and it does not remove the old datas.
>>>
>>> Can someone help me on that ?
>>> if I plot a sin(x) at first, I get it between 0 and 1. then, if I plot
>>> 2.sin(x), it does not update the zoom to 0-2
>>>
>>> thank you,
>>> Philippe
>>>
>>
>> ------------------------------------------------------------------------------
>> This SF.net Dev2Dev email is sponsored by:
>>
>> Show off your parallel programming skills.
>> Enter the Intel(R) Threading Challenge 2010.
>> http://p.sf.net/sfu/intel-thread-sfd
>> _______________________________________________
>> Matplotlib-users mailing list
>> Matplotlib-users@lists.sourceforge.net
>> https://lists.sourceforge.net/lists/listinfo/matplotlib-users
>
>
> ------------------------------------------------------------------------------
> This SF.net Dev2Dev email is sponsored by:
>
> Show off your parallel programming skills.
> Enter the Intel(R) Threading Challenge 2010.
> http://p.sf.net/sfu/intel-thread-sfd
> _______________________________________________
> Matplotlib-users mailing list
> Matplotlib-users@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/matplotlib-users
>

------------------------------------------------------------------------------
This SF.net Dev2Dev email is sponsored by:

Show off your parallel programming skills.
Enter the Intel(R) Threading Challenge 2010.
http://p.sf.net/sfu/intel-thread-sfd
_______________________________________________
Matplotlib-users mailing list
Matplotlib-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/matplotlib-users

Reply via email to