13

記事のために、変形した有限要素メッシュのプロットを生成しています。これは、matplotlib の polycollection を使用して視覚化しています。画像はpdfで保存されます。

高密度メッシュでは問題が発生します。単純なアプローチではファイルが大きすぎ、レンダリングが集中しすぎて実用的ではありません。

これらのメッシュの場合、各要素をポリゴンとしてプロットすることは実際には意味がありません。画像をjpgまたはpngとして保存するときに行われるように、簡単にラスタライズできます。ただし、印刷する場合は、シャープなフレーム、ラベル、および注釈を保持したいと思います。

matplotlib でこの種のハイブリッド ラスター化を実現できるかどうかは誰にもわかりませんか?

imshow を使用して polycollection をバイパスするソリューションを考えることができますが、matplotlib の組み込みコンポーネントを使用することをお勧めします。

アドバイスありがとうございます。

4

1 に答える 1

16

rasterized=Trueキーワードをコレクション コンストラクターに渡すだけです。例:

col = collections.PolyCollection(<arguments>, rasterized=True)

これにより、その要素のみを選択的にラスタライズできます (たとえば、その上に通常のプロットを行った場合、デフォルトでベクター化されます)。plotorのようなほとんどのコマンドは、キーワードを使用imshowすることもできます。rasterized図全体 (ラベルと注釈を含む) をラスタライズしたい場合は、次のようにします。

fig = plt.figure()
a = fig.add_subplot(1,1,1, rasterized=True)

(しかし、質問で述べたように、これはあなたが望むものではありません。)

于 2012-12-26T04:06:56.140 に答える