Matplotlib: Сохранить цифру как файл из ноутбука iPython
Я пытаюсь сохранить фигуру Matplotlib в виде файла из ноутбука iPython.
import matplotlib.pyplot as plt
fig = plt.figure()
ax = fig.add_axes([1,1,1,1])
ax.plot([1,2])
fig.savefig('test.png')
Встроенный просмотр в iPython ноутбуке выглядит хорошо:
![Inline view of figure in iPython notebook]()
Файл test.png почти пуст. Похоже, что сюжет смещен в верхнем правом углу, вы можете увидеть метки метки "1.0" и "0.0" в углу.
![test.png]()
Как я могу создать файл из ноутбука iPython, который выглядит как встроенный просмотр?
Ответы
Ответ 1
Задача решена: добавьте аргумент 'bbox_inches='tight'
в savefig.
import matplotlib.pyplot as plt
fig = plt.figure()
ax = fig.add_axes([1,1,1,1])
plt.plot([1,2])
savefig('test.png', bbox_inches='tight')
Я не понимаю, что происходит здесь, но теперь файл выглядит как встроенный файл для iPython. Yay.
Ответ 2
Собственно, savefig
работает правильно. Когда вы вызываете add_axes
, ваш список указывает прямоугольник: [left, bottom, width, height]
. Поскольку рисунок идет от 0 до 1 на обеих осях с началом в левом нижнем углу, вы делаете прямоугольник ширины и высоты 1, начиная с самого верхнего правого рисунка. Вероятно, вы хотите делать ax = fig.add_axes([0,0,1,1])
.
Я не уверен, почему встроенный сюжет не уважает, где вы разместили оси. Если бы я должен был догадаться, я бы сказал, что встроенный бэкэнд автоматически определяет ограничительную рамку и помещает встроенную цифру в соответствие с этим.