rasterizar el contenido del eje de matplotlib (pero no el marco, las tags)

Para un artículo estoy generando gráficos de mallas de elementos finitos deformadas, que visualizo utilizando la policolección de matplotlib. Las imágenes se guardan como pdf.

Los problemas surgen en las mallas de alta densidad, por lo que el enfoque ingenuo da como resultado archivos que son demasiado grandes y demasiado intensos para ser prácticos.

Para estas mallas, realmente no tiene sentido trazar cada elemento como un polígono; se puede rasterizar fácilmente, como se hace al guardar la imagen como jpg o png. Sin embargo, para la impresión, me gustaría mantener un marco, tags y anotaciones nítidas.

¿Alguien sabe si es posible lograr este tipo de rasterización híbrida en matplotlib?

Puedo pensar en soluciones que impliquen la presentación de imágenes y la omisión de la policolección, pero preferiría usar los componentes integrados de matplotlib.

Gracias por su consejo.

Simplemente pase la palabra clave rasterized=True a su constructor de colecciones. Ejemplo:

 col = collections.PolyCollection(, rasterized=True) 

Esto permite una rasterización selectiva de ese elemento solamente (por ejemplo, si hiciera una gráfica normal encima de él, se vectorizaría de forma predeterminada). La mayoría de los comandos como plot o imshow también pueden tomar la palabra clave rasterized . Si uno quiere rasterizar toda la figura (incluyendo tags y anotaciones), esto lo haría:

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

(Pero esto no es lo que quieres, como se indica en la pregunta).