Jupyter:如何制作简单的插图

Jupyter: how to make simple illustrations

我正在学习使用Jupyter/IPython Notebook 作为电子笔记本。有时我需要简单的插图来配合我的计算,例如箭头表示向量。如果我们在 Latex 中,那将是使用 TikZ 的那种插图。尝试了 TikZ 魔术扩展并失败后,我想知道是否有更原生的 (Python) 方法来做到这一点。我不认为 Matplotlib 是处理这类事情的正确工具(如果我错了请纠正我)。

如果您认为 TikZ magic 确实是可行的方法并且我应该尝试让它发挥作用,那么请直言不讳。谢谢。

TikZ(首选方案)

如果您已经熟悉 TikZ,相应的 magic 可能是最佳选择。要使用它,只需按照 this repo (pip install git+git://github.com/mkrphys/ipython-tikzmagic.git) 中的安装说明并加载扩展,如 githib 页面上所示 %load_ext tikzmagic.
我刚刚尝试使用 IPython 3.1,它工作正常。当然你必须有 pdflatex 可用。

Matplotlib

如果你想绘制简单的箭头,也可以使用 matplotlib,当然,它比 TikZ 更 pythonic。基于 this 示例的一个非常简单的示例可能看起来像

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 不是首选。

其他选择

还有一个asymptote magic found here。不过,我还没有尝试过。

最后,您可以使用写在笔记本中的 svgs(提示见 this 问题,或使用 Inkscape 或类似工具并通过from IPython.display import SVG.