Jupyter: как сделать простые иллюстрации

Я учусь использовать ноутбук Jupyter / IPython в качестве электронного ноутбука. Иногда мне нужны простые иллюстрации для моих вычислений, например стрелки для представления векторных величин. Это та иллюстрация, для которой TikZ был бы использован, если бы мы были в Latex. Попробовав расширение TikZ magic и потерпев неудачу, я задаюсь вопросом, есть ли более родной (Python) способ сделать это. Я не вижу Matplotlib как правильный инструмент для такого рода вещей (поправьте меня, если я неправильный.)

Если вы думаете, что магия Тикз действительно путь, и я должен попытаться заставить его работать, то так и скажите. Спасибо.

1 ответов


TikZ (предпочитаемое решение)

если вы уже знакомы с TikZ, соответствующая магия, вероятно, лучший вариант. Чтобы использовать его, просто следуйте инструкции по установке в этот РЕПО (pip install git+git://github.com/mkrphys/ipython-tikzmagic.git) и загрузите расширение, как показано на странице githib, с помощью %load_ext tikzmagic.
Я просто попробовал с IPython 3.1, и он отлично работает. Конечно, у вас должен быть pdflatex.

библиотек matplotlib

если вы хотите нарисовать простые стрелки matplotlib могут быть использованы также и, конечно, более подходящие для Python, чем TikZ. Очень простой пример, основанный на этой пример может выглядеть как

import matplotlib.pyplot as plt
%matplotlib inline
plt.axis('off')
plt.arrow(0, 0, 0.5, 0.5, head_width=0.05, head_length=0.1, fc='k', ec='k');

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

другие альтернативы

есть асимптоту магия нашел здесь. Но я еще не пробовал.

наконец, вы могли бы использовать svgs либо написано в блокноте (подсказки см. этой вопрос, или с помощью Inkscape или аналогичного и вставить полученный svg-файл через from IPython.display import SVG.