【问题标题】:why matplotlib give the error [<matplotlib.lines.Line2D object at 0x0392A9D0>]?为什么 matplotlib 给出错误 [<matplotlib.lines.Line2D object at 0x0392A9D0>]?
【发布时间】:2015-12-22 20:01:00
【问题描述】:

我在 win8 上使用 python 2.7.9。当我尝试使用 matplotlib 绘图时,出现以下错误:

从 pylab 导入 *
情节([1,2,3,4])

[matplotlib.lines.Line2D 对象在 0x0392A9D0]

我尝试了测试代码“python simple_plot.py --verbose-helpful”,出现以下警告:

$HOME=C:\用户\XX matplotlib 数据路径 C:\Python27\lib\site-packages\matplotlib\mpl-data


您有以下不受支持的 LaTeX 序言自定义项:

请不要在这些自定义处于活动状态时寻求支持。


加载的 rc 文件 C:\Python27\lib\site-packages\matplotlib\mpl-data\matplotlibrc matplotlib 版本 1.4.3 详细程度有帮助 互动是假的 平台是win32 CACHEDIR=C:\Users\XX.matplotlib 使用 C:\Users\XX.matplotlib\fontList.cache 中的 fontManager 实例 后端 TkAgg 版本 8.5 findfont: 匹配 :family=sans-serif:style=normal:variant=normal:weight=normal:stretch=normal:size=medium 到 Bitstream Vera Sans (u'C:\Python27\lib\site-packages\matplotlib\mpl-data\fonts\ttf\Vera.ttf') 得分为 0.000000

这是什么意思?我怎样才能让 matplotlib 工作?

【问题讨论】:

    标签: python matplotlib


    【解决方案1】:

    这不是错误。这已经创建了一个绘图对象,但您需要显示窗口。这是使用pyplot.show() 完成的。 如 cmets 所述,请不要使用pylab,而是使用matplotlib.pyplot,因为pylab 已被弃用。因此,您所要做的就是调用:

    plt.show()
    

    为了重现性,这里是来自 Python REPL(使用 IPython)的跟踪:

    In [1]: import matplotlib.pyplot as plt
    
    In [2]: plt.plot([1,2,3,4])
    Out[2]: [<matplotlib.lines.Line2D at 0x123245290>]
    
    In [3]: plt.show()
    

    我们得到:


    在 Jupyter 笔记本中怎么样?

    如果您在 Jupyter 笔记本中使用它,而不必使用 show(),您可以在导入 matplotlib.pyplot 后将以下内容放在单独的单元格中:

    %matplotlib inline
    

    这将在您创建后自动绘制图形,完成后您无需使用show()

    【讨论】:

    • 你不应该使用pylab,现在推荐的方法是import matplotlib.pyplot as pltplt.plot(...)
    • @tcaswell - 我正在复制 OP 的代码。这显然是我推荐的。我正在编辑我的帖子实际上是为了提及这一点。
    • @tcaswell - 已编辑。感谢现场...感谢matplotlib :)
    • @rayryeng 谢谢!我做了你推荐的事情,它奏效了!但我仍然有以下问题。当我在 notepad++ 中将以下代码保存为 .py 文件,然后在 powershell 中运行时,弹出了一个错误。但是,如果我在 powershell 中逐行键入代码,它就起作用了。这是为什么? >import matplotlib.pyplot as plt plt.plot([1,2,3,4]) plt.show() >C:\Python27\python.exe: 无法打开文件 'plot': [Errno 2] 否这样的文件或目录
    • @susansecret - Python 是一种以空格分隔的语言。您是否确保每行代码没有前导或尾随空格?另外,请确保每一行代码都在单独的行上……而且不是全部都在一行上! :)
    【解决方案2】:

    在 Jupyter nodebook 中,你可以插入

    %matplotlib inline
    

    在你使用matplotlib之前。

    【讨论】:

      【解决方案3】:

      有这个问题。您只需使用show() 函数将其显示在窗口中。使用pyplot.show()

      【讨论】:

        【解决方案4】:

        当您在 Spider 上运行 plt.plot() 时,您现在将收到以下通知:

        图形现在默认呈现在“绘图”窗格中。要使它们也内联显示在控制台中,请取消选中 Plots 窗格选项菜单下的“Mute Inline Plotting”。

        我按照这个说明进行操作,效果很好。

        【讨论】:

          【解决方案5】:

          这些都是很好的答案,但我怀疑很多人会来这里,因为他们在 Google colab 中并且他们从其他人那里复制了一个 Jupyter 笔记本

           %matplotlib
          

          在它的某个地方。删掉就好了。

          (或如其他答案所述,添加内联)

          【讨论】:

            猜你喜欢
            • 2019-04-14
            • 2023-02-15
            • 1970-01-01
            • 2017-04-01
            • 2021-12-16
            • 1970-01-01
            • 2018-11-18
            • 2023-02-15
            • 1970-01-01
            相关资源
            最近更新 更多