How to hide <matplotlib.lines.Line2D> in IPython notebook

19,860

Solution 1

You can use a semi-colon ; to end the line. This suppresses the unwanted output when generating plots:

plt.plot(I,'o');

In general, using a semi-colon stops IPython from printing any output value from that line of a code block. For example, the executing the cell containing the code 1+1; would not output 2.

An alternative way would be to bind a variable to the plot:

_ = plt.plot(a)

This way, IPython only shows you the plots and the name _ is bound to the unwanted output.

Solution 2

Another way is to just write plt.show() at the end of your drawing code. It would take less symbols to type if you're generating many subplots and/or drawing many plots on a single subplot.

Share:
19,860
ROBOTPWNS
Author by

ROBOTPWNS

Updated on June 07, 2022

Comments

  • ROBOTPWNS
    ROBOTPWNS almost 2 years

    I am plotting a NumPy array of values, I, using IPython notebook in %matplotlib inline mode with the plot command plt.plot(I,'o').

    The resulting output is:

    <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>,
     ....
     ....
    ]
    

    Then my plot shows up below these lines of output.

    Is there a way to just show the plot and hide the <matplotlib.lines.Line2D at ...> from the output?

  • will
    will over 9 years
    They could also be stored to a variable too, which would not print to the workbook i think.
  • Alex Riley
    Alex Riley over 9 years
    @will - thanks, have edited to include your suggestion.