ipython notebook --pylab inline: масштабирование графика

82

Можно ли увеличить график, если активирован встроенный? Поворот и масштабирование 3D-графиков - это необходимая функция, особенно в отношении 3D-графиков.

варантир
источник

Ответы:

90

Теперь, благодаря mpld3 , очень легко включить масштабирование встроенных графиков!

Все, что вам нужно сделать, это установить mpld3 ( pip install mpld3), а затем добавить это в свой ноутбук:

%matplotlib inline
import mpld3
mpld3.enable_notebook()

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

Йонилеви
источник
Похоже, что 3D-графики еще не поддерживаются: github.com/jakevdp/mpld3/issues/223
Théo T
3
Это здорово, но следует добавить, что с некоторыми графиками с более высокой нагрузкой (например, с графиками, содержащими миллионы точек) это очень медленно.
2
Я реализовал это в своем Jupyter Notebook 4.2.2, и увеличение изображения привело к тому, что фигура исчезла. Добавление origin = 'lower' в качестве аргумента к вызову imshow () исправило это. (например, imshow (res, origin = 'lower', cmap = cm.gray))
DanGoodrick
6
У меня не работает. Я получаюJson serialization error
Гульзар
95

Теперь вы можете использовать %matplotlib notebookвместо, %matplotlib inlineи вы сможете взаимодействовать со своими сюжетами.

Жуан Абрантиш
источник
1
Это отличное решение. Если вы попробуете, но это не сработает, проверьте свою версию matplotlib. Думаю, это было введено в версии 1.5
jpobst
Не так хорошо, как я надеялся, с подсюжетами; может масштабировать и панорамировать отдельный участок графика, но не может увеличивать / уменьшать размер всего изображения графика. Честно говоря, выше был задан не тот первоначальный вопрос.
ijoseph
1
@ijoseph вы также можете увеличить размер всего изображения. Просто перетащите правый нижний угол графика ..
Жоау Абрантес
4
Возможно, вам придется перезагрузить ноутбук, если вы уже вызвали% matplotlib inline
Гвидо
3
Я получаю сообщение об ошибке «Ошибка Javascript: IPython не определен»
Бен,
10

В настоящее время самое лучшее, что вы можете сделать, - это перерисовать его в большем размере с помощью figsizeфункции. Он ожидает размеры в дюймах, что привлекло меня, когда я впервые попробовал его использовать.

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

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

Томас К
источник
1
Да, это так - с последней версией matplotlib теперь вы можете выбрать серверную часть nbagg.
Thomas K
9

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

import matplotlib
matplotlib.use('nbagg')
import matplotlib.pyplot as plt
Виктор Беттачини
источник
2
Я честно думаю, что это лучший ответ, он выглядит лучше, чем mpld3 и другие функции.
bznein
5

Еще один хороший пример, который появился недавно, - передать работу на аутсорсинг:

https://plot.ly/python/3d-plots-tutorial/

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

Эндрю Мао
источник