sta*_*010 7 python matplotlib ipython-notebook jupyter-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)
Run Code Online (Sandbox Code Playgroud)
正如您在下图中看到的那样,即使我print什么都没有,输出也会出现.如何删除或阻止该行?
Max*_*ers 10
由于Jupyter会自动打印单元格中最后一个对象的表示,因此会出现此输出.在这种情况下,确实在输入单元#1的最后一行中有一个对象.这是调用的返回值.set_title(...),它是类型的实例.Text.此实例将返回到笔记本的全局命名空间,从而进行打印.
要避免此行为,您可以按照注释中的建议,通过在行尾添加分号来抑制输出:
axis.set_title('Histogram', size=20);
Run Code Online (Sandbox Code Playgroud)
另一种方法是将Text变量分配给它而不是将其返回给笔记本.从而,
my_text = axis.set_title('Histogram', size=20)
Run Code Online (Sandbox Code Playgroud)
也解决了这个问题.