I noticed a rendering slowdown when there is a "big" Line2D object (say 10^7
points) added to an Axes, with visibility set to false. I guess that an invisible artist should consume zero processing time instead.
Here is an tiny script meant to be run interactively (say with Python in pylab mode) step by step :
https://gist.github.com/3638471
@pelson traced the problem back to the Axes.draw method where no filtering based on visibility is currently implemented. (Although the visibility flag must be taken into account deeper in the code because the actual rendering of a 10^7 pts Line2D generates an OverflowError: Agg rendering complexity exceeded on my computer)
Reference to the discussion thread on matplotlib-devel mailing list:
http://sourceforge.net/mailarchive/forum.php?thread_name=CA%2BL60sA5_06JXDFFz9gzX-uMUj5rqh%2BJ_TMy88qpNb5NV7whnQ%40mail.gmail.com&forum_name=matplotlib-devel
I noticed a rendering slowdown when there is a "big"
Line2Dobject (say 10^7points) added to an Axes, with visibility set to false. I guess that an invisible artist should consume zero processing time instead.
Here is an tiny script meant to be run interactively (say with Python in pylab mode) step by step :
https://gist.github.com/3638471
@pelson traced the problem back to the
Axes.drawmethod where no filtering based on visibility is currently implemented. (Although the visibility flag must be taken into account deeper in the code because the actual rendering of a 10^7 pts Line2D generates an OverflowError: Agg rendering complexity exceeded on my computer)Reference to the discussion thread on matplotlib-devel mailing list:
http://sourceforge.net/mailarchive/forum.php?thread_name=CA%2BL60sA5_06JXDFFz9gzX-uMUj5rqh%2BJ_TMy88qpNb5NV7whnQ%40mail.gmail.com&forum_name=matplotlib-devel