gpt4 book ai didi

python - 如何在不模糊 matplotlib 标签的情况下更好地栅格化绘图?

转载 作者:太空狗 更新时间:2023-10-29 22:23:26 26 4
gpt4 key购买 nike

我通常使用 ax.set_rasterized(True) 来栅格化图形,以便在以 eps 格式保存时它可以处理透明度,但栅格化也会模糊轴标签和刻度标签,那么有没有办法只光栅化轴内的补丁而不是整个图形?还是有更好的方式导出透明的 eps 格式?谢谢。

最佳答案

作为 matplotlib Artists可以光栅化,任何派生自 Artist (http://matplotlib.sourceforge.net/api/artist_api.html) 的类都可以通过将关键字 rasterized 设置为 True 进行光栅化。所以你只能光栅化你的补丁。

我刚刚尝试了一些组合,它似乎有效。但是质量似乎不是很好(另请参见 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], alpha=0.2, rasterized=True)
add_patch(axes[2], rasterized=False)
add_patch(axes[3], rasterized=True)

plt.tight_layout()
plt.savefig('rasterized_transparency.eps')

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

rasterized_transparency.png

另请参阅:How to save figures to pdf as raster images in matplotlib .

关于python - 如何在不模糊 matplotlib 标签的情况下更好地栅格化绘图?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10049248/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com