46
votes

I have an array A of shape (1000, 2000). I use matplotlib.pyplot to plot the array, which means 1000 curves, using

import matplotlib.pyplot as plt
plt(A)

The figure is fine but there are a thousand lines of:

<matplotlib.lines.Line2D at 0xXXXXXXXX>

Can I disable this output?

5
Just to emphasise what I state in my answer and to explain one of the edits I made, you are not seeing "text output" but the string representation of the object which the matplotlib function returns. From this string we see that the function is returning a matplotlib.lines.Line2D object. This makes sense given the documentation: Return value is a list of lines that were added. Also, have a look at __str__. - Chris

5 Answers

47
votes

This output is what the plt function is returning (I presume here you meant to write plt.plot(A)). To suppress this output assign the return object a name:

_ = plt.plot(A)

_ is often used to indicate a temporary object which is not going to be used later on. Note that this output you are seeing will only appear in the interpreter, and not when you run the script from outside the interpreter.

39
votes

You can also suppress the output by (assuming you are doing this in some sort of interactive environment)

 plot(A);  
20
votes

plt.show()

This way there is no need to create unnecessary variables.

E.g.:

import matplotlib.pyplot as plt

plt.plot(A)
plt.show()
7
votes

use a semi-colon after the plot command

eg: plt.imshow(image,cmap);

will display the graph and stop the verbose

3
votes

Just put a semicolon at the end. That'll work fine. For example:

plt.title('the number is {} '.format(y_train[0]));