Изменить figsize в matplotlib

Похоже, что опция figsize изменяет только отношение высоты к ширине. По крайней мере, это происходит при использовании записных книжек jupyter. Вот пример:

import matplotlib.pyplot as plt
%matplotlib inline
import numpy as np

plt.figure(figsize=(16,8))
plt.plot(np.arange(1,10),np.arange(1,10))
plt.show()
plt.figure(figsize=(24,6))
plt.plot(np.arange(1,10),np.arange(1,10))
plt.show()

Я надеялся, что figsize означает дюймы, а не относительное соотношение. Как бы вы применили это в Python / Jupyter notebooks.

3 ответа

  1. После изменения figsizeразмера фигуры сделайте измененный при изменении параметра в определенном диапазоне.В моем состоянии размер не растет после размера выше (24,8).Когда он все еще ниже диапазона, размер увеличивается.Это основание на вашем dpi displayer, вы можете установить dpi внутри figureно окончательно оно полагается на вашем оборудовании.
    Figaspect устанавливается matplotlib.фигура.figaspect

    Если вы сохраните рисунки в файлыsavefig, вы также увидите увеличение размера изображения.

  2. Если вы используете большойfigsize, скажемfigsize=(50, 5), вы заметите, что линии, надписи, все невероятно тонкое и маленькое по отношению к участку с нормальным размером.

    Это происходит потому, что используются ширины, несовместимые с шириной выходной ячейки
    и ноутбук просто масштабирует фигуру, чтобы она поместилась в выходную ячейку.


    Чтобы получить требуемое поведение, необходима возможность горизонтальной прокрутки в выходной ячейке. Я не знаю `nbextension’, который может включить горизонтальную прокрутку в выходных ячейках.


    После немного экспериментировать, это выглядит как использование nbaggбэкэнда

    %matplotlib nbagg
    

    дает вам прокручиваемую выходную ячейку, а также интерактивную, внутри ноутбука, и, возможно, это то, что вы хотите.


    Дополнение

    Я нашел эту проблему на Github IPython, с запросом на горизонтальную прокрутку в выходной ячейке — как вы можете видеть, это датировано 2012 годом, и нет никакого продолжения.