使用matplotlib.pyplot.plot()绘图时出错

1 投票
2 回答
611 浏览
提问于 2025-04-17 14:04

下面的代码出现了我不明白的错误:

    import numpy as np
    import matplotlib.pyplot as plt
    a = np.arange(10)
    plt.plot(a)
    [<matplotlib.lines.Line2D at 0x116be8890>]
    plt.show()

    2013-01-29 10:58:18.891 Python[27257:903] *** __NSAutoreleaseNoPool(): Object 0x105b27810 of class NSCFArray autoreleased with no pool in place - just leaking
    2013-01-29 10:58:18.893 Python[27257:903] *** __NSAutoreleaseNoPool(): Object 0x105b37f60 of class __NSFastEnumerationEnumerator autoreleased with no pool in place - just leaking
    2013-01-29 10:58:18.895 Python[27257:903] *** __NSAutoreleaseNoPool(): Object 0x105bee900 of class NSObject autoreleased with no pool in place - just leaking

我使用的是matplotlib 1.2.0、numpy 1.6.2、python 2.7.3和ipython 0.13.1。这些软件包是通过macports安装的。我是在Mac OS 10.6.8上运行这个的,而在10.7.5上没有遇到这个问题。

编辑:这个帖子显示了相同的错误,虽然没有找到明确的解决办法

相关问题:

2 个回答

0

我也遇到了这个问题,我的解决办法是添加:

plt.ion()

在第一个绘图命令之前。这会开启互动绘图模式,这样错误就消失了。

1

我还没有找到解决办法。我的临时方案是安装另一个后端:qt4。这需要你做:

    sudo port install qt4-mac
    sudo port install py27-qt4

然后修改(或者如果没有的话就创建)文件 ~/.matplotlib/matplotlibrc,添加:

    backend : QT4Agg

这样,上面的内容就可以正常工作了。

撰写回答