You can do this using the option Axes set_rasterization_zorder.
, zorder , , , , pdf.
:
import matplotlib.pyplot as plt
import numpy as np
data = np.random.rand(500,500)
fig1,ax1 = plt.subplots(1)
ax1.contourf(data)
fig1.savefig('vector.pdf')
fig2,ax2 = plt.subplots(1)
ax2.contourf(data,zorder=-20)
ax2.set_rasterization_zorder(-10)
fig2.savefig('raster.pdf')
print os.stat('vector.pdf').st_size
print os.stat('raster.pdf').st_size
matplotlib .
@tcaswell, , zorder, .set_rasterized. , contourf, PathCollections, contourf set_rasterized . - :
contours = ax.contourf(data)
for pathcoll in contours.collections:
pathcoll.set_rasterized(True)