我正在使用matplotlib(版本1.4)来创建我需要以.tiff格式保存的图像。我正在使用%matplotlib inline
后端在IPython笔记本(版本3.2)中进行绘图。通常我使用Anaconda发行版,并且能够将matplotlib数字保存到.tiff没有问题。但是,我正在尝试将一组最小的依赖项组合在一起,我可以将其作为conda环境共享。目前,我正在使用:
当我在此环境中运行代码时,出现错误:
---------------------------------------------------------------------------
ValueError Traceback (most recent call last)
<ipython-input-14-3d911065b472> in <module>()
56 f.text(.01, .38, "B", size=14)
57
---> 58 savefig(f, "switch_control")
<ipython-input-6-4016f8a0f32d> in savefig(fig, name)
----> 4 fig.savefig("figures/{}.tiff".format(name), dpi=300)
/Users/mwaskom/anaconda/envs/punch/lib/python2.7/site-packages/matplotlib/figure.pyc in savefig(self, *args, **kwargs)
1474 self.set_frameon(frameon)
1475
-> 1476 self.canvas.print_figure(*args, **kwargs)
1477
1478 if frameon:
/Users/mwaskom/anaconda/envs/punch/lib/python2.7/site-packages/matplotlib/backend_bases.pyc in print_figure(self, filename, dpi, facecolor, edgecolor, orientation, format, **kwargs)
2117
2118 # get canvas object and print method for format
-> 2119 canvas = self._get_output_canvas(format)
2120 print_method = getattr(canvas, 'print_%s' % format)
2121
/Users/mwaskom/anaconda/envs/punch/lib/python2.7/site-packages/matplotlib/backend_bases.pyc in _get_output_canvas(self, format)
2059 raise ValueError('Format "%s" is not supported.\n'
2060 'Supported formats: '
-> 2061 '%s.' % (format, ', '.join(formats)))
2062
2063 def print_figure(self, filename, dpi=None, facecolor='w', edgecolor='w',
ValueError: Format "tiff" is not supported.
Supported formats: eps, pdf, pgf, png, ps, raw, rgba, svg, svgz.
我猜测matplotlib中的.tiff支持取决于整个Anaconda发行版中包含的其他库之一,但是,通过搜索它并不清楚这可能是哪一个。
有趣的是,如果我打开IPython终端并使用默认后端绘图(Mac OSX对我来说),它可以正常工作。所以这个问题与IPython笔记本内联后端有关,尽管如上所述,使用完整的anaconda发行版时效果很好。
在我这两种情况下
import matplotlib as mpl
mpl.get_backend()
显示
'module://IPython.kernel.zmq.pylab.backend_inline'
我还需要安装什么才能获得对.tiff文件的支持?
答案 0 :(得分:4)
显然,通过PIL
安装conda
可以在matplotlib中为基于Agg
的后端启用.tiff支持。