当前位置: 首页 > 知识库问答 >
问题:

尽管 --pylab 内联选项,但 Matplotlib 输出未在 IPython 笔记本中以内联方式显示

卢德惠
2023-03-14

我正在启动一个IPython笔记本,matplotlib输出没有显示内联,而是这样:

<matplotlib.figure.Figure at 0x113035310>

代码如下:

from pylab import *
X = np.linspace(-np.pi, np.pi, 256,endpoint=True)
C,S = np.cos(X), np.sin(X)
plot(X,C)
plot(X,S)

show()

笔记本以- pylab=inline开始,当我检查它时,它似乎是正确的:

这是在 IPython 1.1.0 中。当我尝试使用 %pylab 内联时,我得到了类似的结果:

还有什么可能是图没有显示在内的原因?

共有2个答案

寇和璧
2023-03-14

尝试%matplotlibinline,我认为这只是一个默认问题。

微生智刚
2023-03-14

事实证明,内联显示(甚至可能首先生成图像)失败,因为matplotlib无法加载Vera。ttffont文件。它试图从错误的文件系统位置加载该文件,该进程无法访问该文件,而该文件正在OSX沙盒中运行。

10/29/13 11:59:02.000 PM 内核[0]: 沙盒: python(24173) deny 文件读取数据 $HOME/库/开发人员/Xcode/派生数据/IPython_Notebook-adcshxaaibpeztvthgauvsx/build/Products/Debug/IPython Notebook.app/Contents/Resources/virtualenv/lib/python2.7/site-packages/matplotlib/mpl-data/fonts/ttf/Vera.ttf

进程从以下位置运行:

< code > $ HOME/Library/Developer/Xcode/derived data/IPython _ Notebook-adcshxaaibpeztbztvtthgauvufsx/Build/Products/Release/IPython Notebook . app

(“调试”与“发布”)

在我删除了调试位置并重新启动应用程序后,沙盒消息消失了,内联绘图开始工作。当我将应用程序包复制到另一个位置并从那里启动它时,它再次失败。沙盒违规报告中的堆栈跟踪表明是FreeType试图从旧位置加载字体:

0   libsystem_kernel.dylib          0x00007fff9054f5da __open + 10
1   libfreetype.dylib               0x000000010b789214 FT_Stream_New + 260
2   libfreetype.dylib               0x000000010b789e00 FT_Open_Face + 144
3   libfreetype.dylib               0x000000010b789d5e FT_New_Face + 46
4   ft2font.so                      0x000000010b7259f0 FT2Font::FT2Font(Py::PythonClassInstance*, Py::Tuple&, Py::Dict&) + 698
5   ft2font.so                      0x000000010b735fa6 Py::PythonClass<FT2Font>::extension_object_init(_object*, _object*, _object*) + 116

一些调查显示,matplotlib 维护着一个 fontList.cache 文件,该文件最终会出现在应用的沙盒容器目录中。移动应用程序包后,该缓存文件中的路径无效/不可访问。我向我的应用添加了代码,以便在启动时删除此缓存文件。

因此,这并不是一个真正的IPython问题,但我想我会发布这篇文章,以防将来有人将笔记本嵌入沙盒OSX应用程序中。

 类似资料:
  • 如果内联激活,是否可以放大绘图?特别是对于3d绘图,旋转和缩放是一个必要的功能。

  • 每次启动IPython笔记本时,我运行的第一个命令是 有没有办法改变我的配置文件,以便当我启动IPython时,它自动处于这种模式?

  • 我正在看一个ipython笔记本教程,上面说在一个单元中运行这个。导入numpy作为np导入数学导入matplotlib.pyplot作为plt 我应该得到一个实际的图表。我明白了 我该怎么做呢?

  • 问题内容: 每次启动IPython Notebook时,我运行的第一个命令是 有什么方法可以更改我的配置文件,以便在启动IPython时自动处于此模式? 问题答案: IPython的配置文件位于。默认配置文件称为。在此文件夹中,有两个主要配置文件: 将matplotlib的内联选项添加到: matplotlib与pylab 不鼓励使用inline进行绘图。 它将各种不需要的杂项引入您的名称空间。

  • 问题内容: 我试图在MacOS X上使用带有Python 2.7.2和的。 我无法获得matplotlib图形来内联显示。 我也试过了和ipython命令行参数,–但这没什么区别。 我得到的不是内联图形,而是: 并表明我有后端。 问题答案: 我在笔记本的第一个单元中使用了它,并且可以正常工作。我认为你应该尝试: 通过在配置文件中设置以下配置选项,默认情况下,你也始终可以始终默认以内联模式启动所有I

  • 在Matplotlib中,创建图例并不太困难(,如下),但我认为最好将标签放在正在绘制的曲线上(如下面的)。这可能非常棘手,因为我必须手动指定坐标,而且,如果我重新格式化绘图,我可能必须重新定位标签。有没有办法在Matplotlib中自动在曲线上生成标签?能够以与曲线角度相对应的角度确定文本方向的额外点数。