如何更好地光栅化绘图而不会模糊matplotlib中的标签?

如何更好地光栅化绘图而不会模糊matplotlib中的标签?,第1张

概述我通常使用ax.set_rasterized(True)来栅格化图形,以便在以eps格式保存时可以处理透明度,但光栅化也会模糊轴标签和刻度标签,所以有没有办法仅在轴内光栅化贴片而不是比整个数字?或者是否更好地导出具有透明度的eps格式?谢谢. 由于matplotlib Artists可以进行栅格化,因此可以使用关键字栅格化设置为True来栅格化从Artist( http://matplotlib. 我通常使用ax.set_rasterized(True)来栅格化图形,以便在以eps格式保存时可以处理透明度,但光栅化也会模糊轴标签和刻度标签,所以有没有办法仅在轴内光栅化贴片而不是比整个数字?或者是否更好地导出具有透明度的eps格式?谢谢.解决方法 由于matplotlib Artists可以进行栅格化,因此可以使用关键字栅格化设置为True来栅格化从Artist( http://matplotlib.sourceforge.net/api/artist_api.html)派生的任何类.所以你只能光栅化你的补丁.

我只是尝试了一些组合,它似乎工作.然而,质量似乎不是很好(另见http://www.mail-archive.com/[email protected]/msg13276.html).

import numpy as npimport matplotlib.pyplot as plt def add_patch(ax,**kwargs):    if 'rasterized' in kwargs and kwargs['rasterized']:        ax.set_rasterization_zorder(0)    ax.fill_between(np.arange(1,10),1,2,zorder=-1,**kwargs)    ax.set_xlim(0,10)     ax.set_ylim(0,3)    if 'Alpha' in kwargs and kwargs['Alpha'] < 1:        txt = 'This patch is transparent!'    else:        txt = 'This patch is not transparent!'    ax.text(5,1.5,txt,ha='center',va='center',Fontsize=25,zorder=-2,rasterized=True)fig,axes = plt.subplots(nrows=4,sharex=True)add_patch(axes[0],Alpha=0.2,rasterized=False)add_patch(axes[1],rasterized=True)add_patch(axes[2],rasterized=False)add_patch(axes[3],rasterized=True)plt.tight_layout()plt.savefig('rasterized_transparency.eps')

我将eps转换为png以在浏览器中显示它:

另见:How to save figures to pdf as raster images in matplotlib.

总结

以上是内存溢出为你收集整理的如何更好地光栅化绘图而不会模糊matplotlib中的标签?全部内容,希望文章能够帮你解决如何更好地光栅化绘图而不会模糊matplotlib中的标签?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/langs/1207055.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-04
下一篇 2022-06-04

发表评论

登录后才能评论

评论列表(0条)

保存