代码之家  ›  专栏  ›  技术社区  ›  ROBOTPWNS

如何在IPython笔记本中隐藏<matplotlib.lines.Line2D>

  •  69
  • ROBOTPWNS  · 技术社区  · 10 年前

    我正在绘制一个NumPy值数组, I ,在中使用IPython笔记本 %matplotlib 使用plot命令的内联模式 plt.plot(I,'o') .

    结果输出为:

    <matplotlib.figure.Figure at 0x119e6ead0>
    Out[159]:
    [<matplotlib.lines.Line2D at 0x11ac57090>,
     <matplotlib.lines.Line2D at 0x11ac57310>,
     <matplotlib.lines.Line2D at 0x11ac57510>,
     <matplotlib.lines.Line2D at 0x11ac57690>,
     <matplotlib.lines.Line2D at 0x11ac57810>,
     <matplotlib.lines.Line2D at 0x11ac57990>,
     <matplotlib.lines.Line2D at 0x11ac57b10>,
     ....
     ....
    ]
    

    然后我的图显示在这些输出线的下面。

    有没有办法只显示情节并隐藏 <matplotlib.lines.Line2D at ...> 从输出?

    3 回复  |  直到 10 年前
        1
  •  118
  •   Alex Riley    8 年前

    您可以使用分号 ; 以结束该行。这将在生成绘图时抑制不需要的输出:

    plt.plot(I,'o');
    

    通常,使用分号会阻止IPython从代码块的该行打印任何输出值。例如,执行包含代码的单元格 1+1; 不会输出 2 .

    另一种方法是将变量绑定到绘图:

    _ = plt.plot(a)
    

    这样,IPython只向您显示绘图和名称 _ 被绑定到不需要的输出。

        2
  •  23
  •   kurtosis    9 年前

    另一种方法是只写 plt.show() 在绘图代码的末尾。如果要生成多个子图和/或在单个子图上绘制多个图,则键入符号所需的时间将更少。

        3
  •  0
  •   marcio    4 年前

    老问题。。。
    我更喜欢用 pass 在最后一行。

    不是那么小 ; 但是,我的天啊,更清晰,但也更简短。