如何在Python / Jupyter笔记本中省略matplotlib打印输出?

时间:2017-08-04 23:26:36

标签: python matplotlib jupyter-notebook ipython-notebook

当我在IPython / Jupyter笔记本中制作一个简单的绘图时,会有打印输出,可能是从matplotlib标准输出生成的。例如,如果我运行下面的简单脚本,笔记本将打印如下行:<matplotlib.text.Text at 0x115ae9850>

import random
import pandas as pd
%matplotlib inline

A = [random.gauss(10, 5) for i in range(20) ]
df = pd.DataFrame( { 'A': A} ) 
axis = df.A.hist()
axis.set_title('Histogram', size=20)

正如您在下图中看到的那样,即使我没有print任何内容,也会显示输出。如何删除或阻止该行?

Jupyter notebook output

1 个答案:

答案 0 :(得分:7)

此输出发生,因为Jupyter会自动打印单元格中最后一个对象的表示。在这种情况下,确实在输入单元#1的最后一行中有一个对象。这是对.set_title(...)的调用的返回值,.Textaxis.set_title('Histogram', size=20); 类型的实例。此实例将返回到笔记本的全局命名空间,从而进行打印。

要避免此行为,您可以按照注释中的建议,通过在行尾添加分号来抑制输出:

Text

另一种方法是将my_text = axis.set_title('Histogram', size=20) 分配给变量,而不是将其返回给笔记本。因此,

{{1}}

也解决了这个问题。