python - 栅格化 matplotlib 轴内容(但不是框架、标签)

标签 python matplotlib plot vector-graphics rasterizing

对于一篇文章,我正在生成变形的有限元网格图,我使用 matplotlib 的 polycollection 将其可视化。图像保存为 pdf。

问题出现在高密度网格上,天真的方法会导致文件太大并且渲染过于密集而不实用。

对于这些网格,将每个元素绘制为多边形确实没有意义;它可以很容易地被栅格化,就像将图像保存为 jpg 或 png 时所做的那样。但是,对于打印品,我想保留清晰的框架、标签和注释。

有谁知道是否可以在 matplotlib 中实现这种混合光栅化?

我可以想到涉及 imshow 和绕过 polycollection 的解决方案,但我更愿意使用 matplotlib 的内置组件。

感谢您的建议。

最佳答案

只需将 rasterized=True 关键字传递给您的集合构造函数。示例:

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

这只允许对该元素进行选择性光栅化(例如,如果您在其上绘制普通图,默认情况下它将被矢量化)。大多数命令,如 plotimshow 也可以采用 rasterized 关键字。如果要栅格化整个图形(包括标签和注释),可以这样做:

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

(但这不是您想要的,如问题中所述。)

关于python - 栅格化 matplotlib 轴内容(但不是框架、标签),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14032763/

相关文章:

python - matlibplot - 网络字节 y 轴到人类可读

r - 如何向条形图添加重要性指示(星号)?

Python,在处理它们之前删除它们

python - GridSpec 轴调整大小

python - 使用 seaborn facetgrid 热图更改 facet 标题的字体大小

r - ggplot2垂直线未插入到所需位置

python - 使用 kdeplot 与 searborn 进行绘图时,将图例移动到框外时出现错误 : No handles with labels found to put in legend.

python - Virtualenv 没有使用正确版本的 Python

python - 如何使用Python绘制网格世界

python - 在 Cloud Build 管道中运行 python 测试的最佳做法是什么?