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

Question:

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?

Asked By: ROBOTPWNS

||

Answers:

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.

Answered By: Alex Riley

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.

Answered By: kurtosis

Old question…
Well I prefer to use a pass in the last line.

Not so small like ;, but, IMHO, more legible and yet short.

Answered By: marcio