如何更好地光栅化绘图而不会模糊matplotlib中的标签?
发布时间:2021-01-11 21:54:01 所属栏目:Python 来源:互联网
导读:我通常使用ax.set_rasterized(True)来栅格化图形,以便在以eps格式保存时可以处理透明度,但光栅化也会模糊轴标签和刻度标签,所以有没有办法仅在轴内光栅化贴片而不是比整个数字?或者是否更好地导出具有透明度的eps格式?谢谢. 由于matplotlib Artists可以进行
我通常使用ax.set_rasterized(True)来栅格化图形,以便在以eps格式保存时可以处理透明度,但光栅化也会模糊轴标签和刻度标签,所以有没有办法仅在轴内光栅化贴片而不是比整个数字?或者是否更好地导出具有透明度的eps格式?谢谢. 解决方法由于matplotlib Artists可以进行栅格化,因此可以使用关键字栅格化设置为True来栅格化从Artist( http://matplotlib.sourceforge.net/api/artist_api.html)派生的任何类.所以你只能光栅化你的补丁.我只是尝试了一些组合,它似乎工作.然而,质量似乎不是很好(另见http://www.mail-archive.com/matplotlib-users@lists.sourceforge.net/msg13276.html). import numpy as np import 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. (编辑:鲜蔬坊站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- python – 在给定顶点i的pylab中绘制3d表面
- python – 如何在没有带有pandas的“未命名”行的情况下读取
- 如何在python中创建顺序组合列表?
- python – 当涉及离散变量时,pymc3与pymc2的困难
- 【Python】python 中 的 memoize 和 memoized
- python – 从命令行运行PyCharm项目
- python – 在REST框架中返回字典而不是数组
- python – Django模板将模板变量传递到剪切过滤器
- 在python中存储100万个键值对的列表
- python – 什么是django.utils.functional .__ proxy__对象