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

尽管 --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

  • 我第一次使用PDFBox来生成PDF。我有一个文本文档,其中包含由我的java程序生成的一系列约40个多选题。有些问题与小图像相关联,需要在问题上方插入。出于这个原因,我正在将文本文档转换为PDF,并希望在其上插入图像。 我成功地在PDF文档中插入了一张图片,但是它像背景一样嵌入了文本。我希望将图像与文本对齐(如word格式的文本框,内嵌)。看起来插入图像类需要一个绝对位置,这取决于文本的位置。