14

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

如果你认为 TikZ 魔法确实是要走的路,我应该试着让它发挥作用,那就这么说吧。谢谢。

4

1 回答 1

10

TikZ(首选解决方案)

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

Matplotlib

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

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 或类似的,并通过from IPython.display import SVG.

于 2015-06-04T22:08:01.200 回答