保存带有多个扩展名的图窗?

kef*_*ich 6 matplotlib

在 matplotlib 中,是否有任何(特别聪明的)方法来保存具有多个扩展名的图形?

用例:我通常需要 .png 文件用于快速查看、上传到网络等。但对于出版质量的数字,我需要 .pdf 或 .eps 文件。通常,我想要全部 3 个。

不难做到:

for suffix in 'png eps pdf'.split():
    pl.savefig(figname+"."+suffix)
Run Code Online (Sandbox Code Playgroud)

但它确实涉及大量重写代码(因为我现在通常只是savefig(figname+'.png')到处都有),这对于方便的包装函数来说似乎是一个简单的例子。

esm*_*mit 5

如果你总是这样做

from matplotlib import pyplot as pl
...
pl.savefig
Run Code Online (Sandbox Code Playgroud)

那么你可以pl.savefig在一个地方重新分配,它会影响所有地方。

from matplotlib import pyplot as pl
def save_figs(fn,types=('.pdf',)):
    fig = pl.gcf()
    for t in types:
        fig.savefig(fn+t)
pl.savefig = save_figs
Run Code Online (Sandbox Code Playgroud)

如果你通常这样做

fig=pl.figure()
fig.savefig(...)
Run Code Online (Sandbox Code Playgroud)

那么这将需要更多的努力。