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 ноутбуке выглядит неплохо:

Встроенный просмотр рисунка в ноутбуке iPython


Файл test.png почти пуст. Похоже, что сюжет смещен в верхнем правом углу, вы можете увидеть метки метки «1.0» и «0.0» в углу.

test.png

Как я могу создать файл из iPython-ноутбука, который выглядит как встроенный просмотр?

2 Solutions collect form web for “Matplotlib: Сохранить цифру как файл из ноутбука iPython”

Проблема решена: добавьте '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. Ура.

Фактически, savefig работает правильно. Когда вы вызываете add_axes , ваш список указывает прямоугольник: [left, bottom, width, height] . Поскольку рисунок идет от 0 до 1 на обеих осях с началом в левом нижнем углу, вы делаете прямоугольник ширины и высоты 1, начиная с самого верхнего правого рисунка. Вероятно, вы хотите делать ax = fig.add_axes([0,0,1,1]) .

Я не уверен, почему встроенный сюжет не уважает, где вы разместили оси. Если бы я должен был догадаться, я бы сказал, что встроенный бэкэнд автоматически определяет ограничительную рамку и помещает встроенную цифру в соответствие с этим.

  • Как построить временные ряды с помощью matplotlib Python
  • Python / matplotlib: построение 3d-куба, сферы и вектора?
  • Как вычислить вероятность значения, заданного списком выборок из дистрибутива в Python?
  • Построение временных рядов данных с использованием морского
  • pandas plot time series
  • множественная ось в matplotlib с разной шкалой
  • Иерархия в matplotlib
  • Как показать строку и график на одном и том же участке
  • Как нарисовать график, соединяющий точки с двух времен измерения?
  • Запуск matplotlib в tkinter
  • Создание подзаголовка вместо отдельных графиков
  • Python - лучший язык программирования в мире.