Только что получил ошибку после включения формата jpg matplotlib:
%matplotlib inline
from IPython.display import set_matplotlib_formats
set_matplotlib_formats('png', 'jpg')
ValueError Traceback (most recent call last)
C:\portabel\miniconda\envs\ipython\lib\site-packages\IPython\core\formatters.pyc in __call__(self, obj)
333 pass
334 else:
--> 335 return printer(obj)
336 # Finally look for special method names
337 method = _safe_get_formatter_method(obj, self.print_method)
C:\portabel\miniconda\envs\ipython\lib\site-packages\IPython\core\pylabtools.pyc in <lambda>(fig)
209 png_formatter.for_type(Figure, lambda fig: retina_figure(fig, **kwargs))
210 if 'jpg' in formats or 'jpeg' in formats:
--> 211 jpg_formatter.for_type(Figure, lambda fig: print_figure(fig, 'jpg', **kwargs))
212 if 'svg' in formats:
213 svg_formatter.for_type(Figure, lambda fig: print_figure(fig, 'svg', **kwargs))
C:\portabel\miniconda\envs\ipython\lib\site-packages\IPython\core\pylabtools.pyc in print_figure(fig, fmt, bbox_inches, **kwargs)
115
116 bytes_io = BytesIO()
--> 117 fig.canvas.print_figure(bytes_io, **kw)
118 data = bytes_io.getvalue()
119 if fmt == 'svg':
C:\portabel\miniconda\envs\ipython\lib\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
C:\portabel\miniconda\envs\ipython\lib\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 "jpg" is not supported.
Supported formats: eps, pdf, pgf, png, ps, raw, rgba, svg, svgz.
IPython.core.pylabtools
здесь:
supported = {'png', 'png2x', 'retina', 'jpg', 'jpeg', 'svg', 'pdf'}
Так что подозреваю, что здесь что-то не так ...
Это IPython 3.0, matplotlib 1.4.3 (оба из репозитория condas), Win7
Я думаю, что для работы matplotlib требуется PIL для экспорта jpg:
conda install pillow
Разве это не должно быть:
supported = {'png', 'png2x', 'retina', 'svg', 'pdf'}
try:
from PIL import Image
supported = supported.union({'jpg', 'jpeg'})
except:
pass
Вероятно, нет, потому что это приведет к импорту PIL, который является относительно тяжелым, даже если люди его не используют.
И форматы экспорта требуют PIL только для определенных бэкэндов (Agg / inline, но не GTK или OS X).
Привет,
Этот вопрос не обсуждается почти 2 года, и я не думаю, что мы можем что-то сделать. Он был отмечен как бездействие, и я собираюсь закрыть его, чтобы попытаться уменьшить количество открытых проблем. Не стесняйтесь открывать снова, если необходимо.
Спасибо.
pip3 install pillow
заставил меня работать
pip install Pillow также не может решить проблему на моем компьютере .....
pip install Pillow также не может решить проблему на моем компьютере .....
Попробуйте сначала удалить подушку, а затем установить ее обратно. Работал у меня.
sudo pip3 uninstall pillow
sudo pip3 install pillow
Я столкнулся с той же проблемой, и приведенные выше решения не помогли решить мою проблему. После этого я просто попробовал plt.savefig("images/pie.png")
, заменив .jpg на .png в файле .py, а также в моем файле .html. Наконец, файл pie.png был автоматически добавлен в мои папки, и моя проблема была решена.
Это связано с ошибкой в Matplotlib (см. Https://github.com/matplotlib/matplotlib/issues/16083) в том, как мы проверяли версию подушки, которая была удалена в подушке 7.0. Это было исправлено в соответствующих ветках апстрима, и скоро должны выйти исправления ошибок. А пока понизьте подушку.
pip install "Pillow <7" заставил меня работать
Самый полезный комментарий
Я думаю, что для работы matplotlib требуется PIL для экспорта jpg: