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


264

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

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

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

Ответы:


172

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

fig=plt.figure(figsize=(18, 16), dpi= 80, facecolor='w', edgecolor='k')

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 (высота) дюймов


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


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

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]

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()
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.