How to hide <matplotlib.lines.Line2D> in IPython notebook
PythonMatplotlibPlotIpythonIpython NotebookPython Problem Overview
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?
Python Solutions
Solution 1 - Python
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 - Python
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.
Solution 3 - Python
Old question...
Well I prefer to use a pass
in the last line.
Not so small like ;
, but, IMHO, more legible and yet short.