[pyar] Duda Matplolib alternativa a draw()

Kiko kikocorreoso en gmail.com
Mie Mar 30 11:19:41 ART 2016


El 30 de marzo de 2016, 15:25, Pablo Morales <moralespablogaston en gmail.com>
escribió:

> Como me comentaste de que scatter es lento a comparacion con plot, en
> realidad el problema es el draw() que es extremadamente lento. con plot
> sigo con el mismo problema.
>

Puedes poner un ejemplo que reproduzca tu problema?


>
> El 30 de marzo de 2016, 2:38, Kiko <kikocorreoso en gmail.com> escribió:
>
>>
>>
>> El 30 de marzo de 2016, 6:57, Pablo Morales <moralespablogaston en gmail.com
>> > escribió:
>>
>>> Buenos noches, queria preguntarles si alguno uso una alternativa mas
>>> eficiente para refrescar plots en una figura que no sea con el metodo
>>> draw().
>>>
>>> Les cuento como viene la bronca, resulta que uso matplolib para realizar
>>> una figura que se va actualizando dentro de un widget de pyqt.
>>> mas o menos la cuestion viene asi:
>>>
>>> matplotlib.backends.backend_qt4agg
>>> fig = Figure(figsize=(30,10), dpi=100)
>>> axes=fig.add_subplot(111, projection='polar')
>>>
>>> canvas = FigureCanvas(self.fig)
>>>
>>> marcaPlot=axes.scatter(x,y...)
>>>
>>> En general, scatter es lento. Prueba a hacer lo mismo con plot, i.e.:
>>
>> marcaPlot = axes.plot(x, y, 'o',...)
>>
>> y nos cuentas.
>>
>> Unas alternativas a gráficos 'en vivo' con matplotlib sería usando PyQwt,
>> glumpy, bokeh,...
>>
>>
>>> cuando realizo el ploteo,luego llamo a la funcion draw() para actualizar la grafica con los plots. El problema es que cuando llamo a draw()
>>>
>>> canvas.draw() para actualizar la figura, este metodo tiene muy baja performance, tarda cerca de 0.2seg en actualizar un plot.
>>>
>>> Estoy en busca de una forma de actualizar los plots de una manera mas eficiente.
>>>
>>> Estve buscando y una forma que encotre es usando blit(), lo que hago es realizar el plot
>>> marcaScatt=axes.scatter(x,y)
>>>
>>> y luego le paso el plot a draw_artist()
>>>
>>> axes.draw_artist(marcaScatt)
>>>
>>> por ultimo uso para actualizar la grafica
>>> canvas.blit(axes.bbox)
>>>
>>>
>>> Teniendo en cuenta esto, el problema que me surge es poder quitar los plots de la grafica, ya que no encuentro un metodo remove()
>>>
>>> u algo parecido como para remover el plot. Cabe aclarar que graficar usando este metodo es mucho mas eficiente, estamos
>>>
>>> hablando de 0.00376892089844 seg vs los casi 0.2 seg cuando actualizaba con draw().
>>>
>>>
>>> Sin mas, si alguno alguna vez trabajo con esto y me tira un centro agradecido estaría.
>>>
>>> Saludos, atte. Pablo Morales.
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>> _______________________________________________
>>> pyar mailing list pyar en python.org.ar
>>> http://listas.python.org.ar/listinfo/pyar
>>>
>>> PyAr - Python Argentina - Sitio web: http://www.python.org.ar/
>>>
>>> La lista de PyAr esta Hosteada en USLA - Usuarios de Software Libre de
>>> Argentina - http://www.usla.org.ar
>>>
>>
>>
>> _______________________________________________
>> pyar mailing list pyar en python.org.ar
>> http://listas.python.org.ar/listinfo/pyar
>>
>> PyAr - Python Argentina - Sitio web: http://www.python.org.ar/
>>
>> La lista de PyAr esta Hosteada en USLA - Usuarios de Software Libre de
>> Argentina - http://www.usla.org.ar
>>
>
>
> _______________________________________________
> pyar mailing list pyar en python.org.ar
> http://listas.python.org.ar/listinfo/pyar
>
> PyAr - Python Argentina - Sitio web: http://www.python.org.ar/
>
> La lista de PyAr esta Hosteada en USLA - Usuarios de Software Libre de
> Argentina - http://www.usla.org.ar
>
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://listas.python.org.ar/pipermail/pyar/attachments/20160330/8eb4c0cb/attachment.html>


Más información sobre la lista de distribución pyar