Skip to main content
 首页 » 编程设计

python之为什么 matplotlib.collections 高效

2024年10月01日1exmyth

我知道要绘制大量形状或线段,我必须使用 matplotlib.collections类(class)。这在各种 examples 中表现得更快.例如,有人知道为什么 matplotlib.collections 可以更快地绘制线段吗?

快速绘制多条线段的解决方案给出here ,但我似乎无法弄清楚为什么这更快。

请您参考如下方法:

“为什么 matplotlib.collections 更快?”这个问题的简短回答: 因为集合设计得更快,而各个线段设计得更灵活。

来自模块documentation :

Classes for the efficient drawing of large collections of objects that share most properties, e.g., a large number of line segments or polygons.

The classes are not meant to be as flexible as their single element counterparts (e.g., you may not be able to select all line styles) but they are meant to be fast for common use cases (e.g., a large set of solid line segemnts)

我对 matplotlib 的内部结构不够熟悉,无法详细解释这些实现的不同之处。如果非要我猜的话,我会说这个集合知道它只会画线,所以可以设置画线,然后一次画完所有的线。相比之下,单独的线条不知道下一个绘制的东西是否具有相同的属性,甚至不知道它是否也是一条线,所以他们必须在绘制后清理并且下一条线需要重新设置状态。但这只是猜测。