ast*_*max 41 png image matplotlib ps
如果我尝试使用.ps/.eps扩展名保存它们,我在尝试使用透明椭圆体保存一些图时遇到问题.
这是保存为.png的情节:

如果我选择将其保存为.ps/.eps,这就是它的样子:

我是如何解决这个问题的,是使用ImageMagick将原始png转换为ps.唯一的问题是png格式的图像大约是90k,转换后它变得不到4M.这不好,因为我有很多这些图像,编辑我的乳胶文件需要太多时间.有人有解决方案吗?
Fra*_*ano 25
问题是eps本机不支持透明胶片.
选项很少:
光栅化图像并嵌入eps文件(如@Molly建议)或导出为pdf并使用一些外部工具(如gs)进行转换(通常也依赖于光栅化)
'模仿'透明度,给出在给定背景上看起来像透明的颜色.
我在matplotlib邮件列表上肯定曾经讨论过这个问题,我得到了rasterize的建议,这是不可行的,因为你得到像素化或巨大的数字.当放入例如出版物时,它们不能很好地扩展.
我个人使用第二种方法,虽然不理想,但我发现它足够好.我写了一个小的python脚本,从这个SO帖子实现算法,以获得具有透明度的颜色的实体RGB表示
编辑
在您的绘图的特定情况下,尝试使用zorder关键字来对绘制的零件进行排序.尝试使用zorder=10蓝色椭圆,zorder=11绿色和zorder=12hexbins.
这样蓝色应该低于一切,然后是绿色椭圆,最后是六角形.情节也应该是可读的纯色.如果你喜欢png中的蓝色和绿色,你可以尝试玩mimic_alpha.py.
编辑2
如果你100%确定你必须使用eps,我会想到一些解决方法(这肯定比你的情节更丑):
hexbin并根据需要调整标记大小和形状.您可能希望重新绘制椭圆边框P.R*_*.R. 14
另一种选择是将它们保存为pdf
savefig('myfigure.pdf')
Run Code Online (Sandbox Code Playgroud)
这适用于pdflatex,如果这就是你需要使用eps而不是svg的原因.
小智 8
我有同样的问题.要避免栅格化,可以将图像另存为pdf,然后在终端中运行(至少在unixish系统上):
pdftops -eps my.pdf my.eps
这提供了一个.eps文件作为输出.
您可以在保存之前栅格化图形以保持eps文件中的透明度:
ax.set_rasterized(True)
plt.savefig('rasterized_fig.eps')
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
21684 次 |
| 最近记录: |