禁止在matplotlib

时间:2018-07-27 20:45:04

标签: python matplotlib

这就是我的绘图方式

from matplotlib import pyplot
pyplot.figure();
pyplot.scatter(x=data[feat], y=data[target]);
pyplot.xlabel(feat);
pyplot.ylabel(target);
pyplot.show();

我得到的输出就像

Figure size 432x288 with 0 Axes>

<matplotlib.collections.PathCollection at 0x7fd80c2fbf50>

Text(0.5,0,'Age1')

Text(0,0.5,'Target')

如何抑制此输出?分号无效。我正在Jupyter笔记本中运行它。

2 个答案:

答案 0 :(得分:2)

将您的绘图调用分配给随机变量名称,将不会有任何输出。按照惯例,它可以是_,但是您可以使用任何想要的变量名:

from matplotlib import pyplot

_ = pyplot.figure()
_ = pyplot.scatter(x=data[feat], y=data[target])
_ = pyplot.xlabel('feat')
_ = pyplot.ylabel('target')
pyplot.show()

请注意,与MATLAB不同的是,分号不会抑制python中的输出,它们只是用来分隔不同的语句,如果您使用换行符作为分隔符,则通常不需要使用分号(是这样做的标准方法)

答案 1 :(得分:1)

此问题记录在此https://github.com/ipython/ipython/issues/10794

您/某事可能已将您的交互式外壳设置为 from IPython.core.interactiveshell import InteractiveShell InteractiveShell.ast_node_interactivity = "all"

一种解决方案是将all更改为last_expr

其结果是单元格将显示最后一个表达式的输出,而不是每个表达式的输出。当然,您仍然可以print进行某些操作,并且可以正常工作。

另一种解决方案是将;添加到最后一个表达式

例如,您可以添加 pass;位于单元格的末尾,这会抑制输出

第三个选项是@sacul建议的,可以使用一些虚拟变量将输出分配给变量。

确保您不在其他地方使用该变量