2017-02-01 8 views
2

形状や線分の大部分を描画するには、matplotlib.collectionsクラスを使用する必要があります。これは、様々なexamplesではるかに高速であることが示されています。誰かがなぜmatplotlib.collectionsが線分を描くのが速いのかを知っていますか?なぜmatplotlib.collectionsが効率的ですか?

複数の線分をより速く描画するソリューションはhereですが、なぜこれが高速かどうかはわかりません。

答えて

2

「なぜmatplotlib.collectionsがより速いのですか」という短い答え: 個々の線分がより柔軟になるようにコレクションが設計されているので、コレクションは高速に設計されているためです。モジュールdocumentationから

:大規模なコレクションオブジェクトのの効率的に描画するための

クラスその 共有最も特性、例えば、ラインセグメントまたは ポリゴンの多数。

クラスはそれらが一般的なユースケースのための高速であることを意味している カウンターパート(例えば、あなたはすべての線のスタイルを選択することができないかもしれない)が、 その単一の要素としてとして柔軟にを意図するものではない(例えば、 実線segemntsの大規模なセット)

私は実装が細部では異なる方法を説明するのmatplotlibのの内部で十分に熟知していないです。私が推測しなければならないのは、コレクションは線を描くだけなので、線画を設定してから、すべての線を一度に描くことができるということです。これとは対照的に、個々の行は、描画される次のものが同じプロパティを持っているのか、それが線であってもわからないので、描画した後にクリーンアップしなければならず、次の行は再び状態を設定する必要があります。しかし、これはちょうど投機です。

関連する問題