Как изменить размер фигуры, нарисованной с помощью matplotlib?
python
graph
matplotlib
plot
visualization
tatwright
источник
источник
plt.figure(figsize=(20,10))
fig, ax = plt.subplots(figsize=(20, 10))
fig = plt.gcf()
->fig.set_size_inches(11,8)
чтобы избежать путаницы раз и навсегда.Ответы:
цифра говорит вам подпись вызова:
figure(figsize=(1,1))
создаст изображение дюйм-дюйм, которое будет размером 80 на 80 пикселей, если вы не укажете другой аргумент в dpi.источник
show()
создаете всплывающее окно, вам нужно вызвать егоfigure(num=1,...)
перед тем, как что-то нарисовать - pyplot / pylab создает фигуру, как только вы что-то рисуете, и появляется размер всплывающего окна. быть исправленным в этой точке.Если у вас уже есть созданная фигура, вы можете быстро сделать это:
Чтобы распространить изменение размера в существующее окно графического интерфейса, добавьте
forward=True
источник
imshow
, теперь я использую этот код сразу после удаления пространства вокруг области построения с помощьюplt.subplots_adjust(left=0.0, right=1.0, bottom=0.0, top=1.0)
.fig.set_dpi(100)
.Кажется, работает следующее:
Это делает ширину фигуры 5 дюймов, а ее высоту 10 дюймов .
Класс Figure затем использует это значение по умолчанию для одного из своих аргументов.
источник
fig.set_size_inches(18.5, 10.5, forward=True)
работал.ИСПОЛЬЗОВАНИЕ plt.rcParams
Существует также этот обходной путь, если вы хотите изменить размер без использования среды рисунка. Так, если вы используете,
plt.plot()
например, вы можете установить кортеж с шириной и высотой.Это очень полезно при построении графиков (например, с помощью IPython Notebook). Как заметил @asamaier, предпочтительнее не помещать это утверждение в одну и ту же ячейку операторов импорта.
Преобразование в см
figsize
Кортеж принимает дюймов , так что если вы хотите , чтобы установить его в сантиметрах вы должны разделить их на 2,54 взглянуть на этот вопрос .источник
plt.rcParams["figure.figsize"] = (20,3)
в дополнительную ячейку. Когда я вызываю его в той же ячейке, что и оператор import, он игнорируется.Пожалуйста, попробуйте простой код, как показано ниже:
Вы должны установить размер фигуры, прежде чем строить.
источник
atplotlib.pyplot.figure
, о чем другие не говорят так ясно. Я продолжаю пробовать такие вещи, какmatplotlib.figure
иmatplotlib.figure.Figure
plt.figure(figsize=(1,1))
это основной шаг. Спасибо.Если вы ищете способ изменить размер фигуры в Pandas , вы можете сделать, например:
где
df
находится датафрейм Pandas. Или использовать существующую фигуру или осиЕсли вы хотите изменить настройки по умолчанию, вы можете сделать следующее:
источник
Первая ссылка в Google для
'matplotlib figure size'
- AdjustingImageSize ( кеш страницы Google ).Вот тестовый скрипт с вышеуказанной страницы. Создает
test[1-3].png
файлы разных размеров одного и того же изображения:Вывод:
Две заметки:
Комментарии к модулю и фактический результат отличаются.
Этот ответ позволяет легко объединить все три изображения в один файл изображения, чтобы увидеть разницу в размерах.
источник
fig = plt.figure() default_size = fig.get_size_inches() fig.set_size_inches( (default_size[0]*2, default_size[1]*2) )
Вы также можете использовать:
источник
Вы можете просто использовать (из matplotlib.figure.Figure ):
Начиная с Matplotlib 2.0.0, изменения в вашем холсте будут видны немедленно, так как
forward
ключевое слово по умолчанию имеет значениеTrue
.Если вы хотите просто изменить ширину или высоту вместо обоих, вы можете использовать
fig.set_figwidth(val)
илиfig.set_figheight(val)
Они также немедленно обновят ваш холст, но только в Matplotlib 2.2.0 и новее.
Для старых версий
Вам необходимо
forward=True
явно указать , чтобы обновлять холст в режиме реального времени в версиях, более старых, чем указано выше. Обратите внимание , чтоset_figwidth
иset_figheight
функция не поддерживаетforward
параметр в версиях старше Matplotlib 1.5.0.источник
Попробуйте закомментировать
fig = ...
строчкуисточник
Это хорошо работает для меня:
Это также может помочь: http://matplotlib.1069221.n5.nabble.com/Resizing-figure-windows-td11424.html
источник
Чтобы увеличить размер вашей фигуры в N раз, вам нужно вставить это непосредственно перед вашим pl.show ():
Это также хорошо работает с ноутбуком ipython.
источник
Поскольку Matplotlib не может использовать метрическую систему изначально, если вы хотите указать размер вашей фигуры в разумных единицах длины, таких как сантиметры, вы можете сделать следующее (код из gns-ank ):
Тогда вы можете использовать:
источник
Это изменяет размер фигуры сразу же после того, как фигура была нарисована (по крайней мере, используя Qt4Agg / TkAgg - но не MacOSX - с matplotlib 1.4.0):
источник
Обобщающий и упрощающий ответ психоделии. Если вы хотите изменить текущий размер фигуры с коэффициентом
sizefactor
После изменения текущего размера может возникнуть необходимость в точной настройке макета подзаговора . Вы можете сделать это в графическом интерфейсе окна рисунка или с помощью команды subplots_adjust
Например,
источник
Другой вариант - использовать функцию rc () в matplotlib (единица измерения - дюйм)
источник
Вы напрямую изменяете размер фигуры, используя
источник
pyplot
не имеет метода с именемset_figsize
.