作者热门文章
- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
对于一篇文章,我正在生成变形的有限元网格图,我使用 matplotlib 的 polycollection 将其可视化。图像保存为 pdf。
问题出现在高密度网格上,天真的方法会导致文件太大并且渲染过于密集而不实用。
对于这些网格,将每个元素绘制为多边形确实没有意义;它可以很容易地被栅格化,就像将图像保存为 jpg 或 png 时所做的那样。但是,对于打印品,我想保留清晰的框架、标签和注释。
有谁知道是否可以在 matplotlib 中实现这种混合光栅化?
我可以想到涉及 imshow 和绕过 polycollection 的解决方案,但我更愿意使用 matplotlib 的内置组件。
感谢您的建议。
最佳答案
只需将 rasterized=True
关键字传递给您的集合构造函数。示例:
col = collections.PolyCollection(<arguments>, rasterized=True)
这只允许对该元素进行选择性光栅化(例如,如果您在其上绘制普通图,默认情况下它将被矢量化)。大多数命令,如 plot
或 imshow
也可以采用 rasterized
关键字。如果要栅格化整个图形(包括标签和注释),可以这样做:
fig = plt.figure()
a = fig.add_subplot(1,1,1, rasterized=True)
(但这不是您想要的,如问题中所述。)
关于python - 栅格化 matplotlib 轴内容(但不是框架、标签),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14032763/
我是一名优秀的程序员,十分优秀!