Как увеличить линейные графики в ноутбуке Jupyter?

264

Я включил свои графики в блокнот Ipython с помощью « %matplotlib inline

Теперь сюжет появляется. Однако это очень мало. Есть ли способ сделать его больше, используя настройки ноутбука или сюжета?

введите описание изображения здесь

Кристофер
источник

Ответы:

172

Да, поиграйте figuresizeтак (перед тем, как позвонить в свой сюжет):

fig=plt.figure(figsize=(18, 16), dpi= 80, facecolor='w', edgecolor='k')
roadrunner66
источник
28
f, (ax1, ax2, ax3) = plt.subplots (1,3, sharex = 'col', sharey = 'row', figsize = (18, 16)) для этого конкретного случая
Rol
12
Не работает. Изменение размера в моем случае только меняет соотношение сторон. Ширина общей фигуры остается неизменной
Алексей Фоминьш
Это верно для чисел, слишком больших для размещения на странице, тогда масштабирование прекращается. Это все еще может быть полезно для изменения соотношения сторон, как вы заметили.
roadrunner66
1
Увеличение dpi до 200 обеспечивает гораздо лучший результат, чем просто изменение размера фигуры.
Адитья Бхат
Да, смотрите @Hagne ниже.
roadrunner66
404

Размер фигуры по умолчанию (в дюймах) контролируется

matplotlib.rcParams['figure.figsize'] = [width, height]

Например:

import matplotlib.pyplot as plt
plt.rcParams['figure.figsize'] = [10, 5]

создает фигуру с 10 (ширина) х 5 (высота) дюймов

tacaswell
источник
7
Это на самом деле гораздо полезнее в качестве стратегии «поставь и забудь», если все сюжеты не соответствуют размеру.
Иосиф
2
Отлично. Боролся с размерами коробочного участка панд, и это исправило это. По какой-то причине figsize=(x,y)аргумент неэффективен в Юпитере. Однако изменение matplob.rcParams, как вы предлагаете, работает отлично.
0_0
30
Убедитесь, что вы запустите это после запуска %matplotlib inline.
UUT
@uut не по умолчанию?
Верена Хауншмид,
4
@VerenaHaunschmid, запущенный %matplotlib inlineпосле установки rcParams, похоже, перезаписывает размер фигуры обратно по умолчанию.
UUT
63

Я обнаружил, что %matplotlib notebookдля меня это работает лучше, чем для ноутбуков Jupyter.

Обратите внимание, что вам может потребоваться перезапустить ядро, если вы использовали %matplotlib inlineранее.

Обновление 2019: если вы используете Jupyter Lab, вы можете использовать %matplotlib widget

SlimCheney
источник
5
Может быть, это работает в некоторых случаях, но когда я попробовал это на моем, это дало мне чистое изображение с кадром данных pandas df.plot(). Я должен был вернуться к%matplotlib inline
Цандо
8
@tsando Я видел проблему , где переход от %matplotlib inlineк %matplotlib notebookбез перезагрузки ядра дает чистый выход. Переключение с %matplotlib notebookна %matplotlib inlineработает нормально.
SlimCheney
4
Спасибо @SlimCheney, я подтверждаю, что вы говорите, правда - это работает, если вы перезапустите ядро
tsando
1
Это определенно лучше, чем попытки настроить компоненты панорамирования и масштабирования вручную
beldaz
1
не работает даже после перезагрузки ядра. Это дает чистый вывод
Карди Текномо
31

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

import matplotlib.pylab as plt
plt.rcParams['figure.dpi'] = 200
Hagne
источник
19

Вопрос о matplotlib, но ради любых пользователей R, которые в конечном итоге здесь, дали название, не зависящее от языка:

Если вы используете ядро ​​R, просто используйте:

options(repr.plot.width=4, repr.plot.height=3)
Джаред Уилбер
источник
11

Чтобы настроить размер одной фигуры:

import matplotlib.pyplot as plt

fig=plt.figure(figsize=(15, 15))

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

import matplotlib.pyplot as plt

plt.rcParams['figure.figsize'] = [15, 15]
farrellw
источник
1

Небольшая, но важная деталь для настройки размера фигуры на разовой основе (как отмечали несколько вышеупомянутых комментаторов, «это не работает для меня»):

Вы должны сделать plt.figure (figsize = (,)) ДО определения вашего фактического графика. Например:

Это должно правильно определить размер участка в соответствии с указанным размером:

values = [1,1,1,2,2,3]
_ = plt.figure(figsize=(10,6))
_ = plt.hist(values,bins=3)
plt.show()

Принимая во внимание, что это покажет график с настройками по умолчанию, похоже, «игнорировать» figsize:

values = [1,1,1,2,2,3]
_ = plt.hist(values,bins=3)
_ = plt.figure(figsize=(10,6))
plt.show()
RGood
источник