Axes
オプションset_rasterization_zorder
を使用してこれを行うことができます。
pdf
のようなベクターフォーマットに保存しても、設定した値より小さいzorder
のものは、ラスタライズされたグラフィックスとして保存されます。例えば
:
import matplotlib.pyplot as plt
import numpy as np
data = np.random.rand(500,500)
# fig1 will save the contourf as a vector
fig1,ax1 = plt.subplots(1)
ax1.contourf(data)
fig1.savefig('vector.pdf')
# fig2 will save the contourf as a raster
fig2,ax2 = plt.subplots(1)
ax2.contourf(data,zorder=-20)
ax2.set_rasterization_zorder(-10)
fig2.savefig('raster.pdf')
# Show the difference in file size. "os.stat().st_size" gives the file size in bytes.
print os.stat('vector.pdf').st_size
# 15998481
print os.stat('raster.pdf').st_size
# 1186334
あなたはより多くの背景情報についてはthis matplotlib exampleを見ることができます。
としては、あなたが.set_rasterized
を使用することができ、そのzorder
に影響を与えることなく、ただ一人のアーティストをラスタライズし、@tcaswellによって指摘。しかし、これはcontourf
のオプションではないようですので、それぞれcontourf
とset_rasterized
で作成されたPathCollections
をループする必要があります。このようなもの:
contours = ax.contourf(data)
for pathcoll in contours.collections:
pathcoll.set_rasterized(True)
出典
2016-05-04 15:30:25
tom
典型的なプロットはありますか?あなたはnchunkパラメータで遊んだのですか? –
@tomで与えられた例は、典型的なプロットです。私はnchunckパラメータで遊んでいませんでしたが、私の目的のために選択された答えで十分でした。最高の –