Jupyter notebook 如何抑制Jupyter笔记本中不需要的输出
我想在运行Jupyter Notebook cell时抑制任何文本输出。具体地说,我输出了一些数字,每个数字都附有如下内容:Jupyter notebook 如何抑制Jupyter笔记本中不需要的输出,jupyter-notebook,output,Jupyter Notebook,Output,我想在运行Jupyter Notebook cell时抑制任何文本输出。具体地说,我输出了一些数字,每个数字都附有如下内容: <Figure size 432x288 with 0 Axes> 如果单元格最后一行的典型输出是您试图抑制的内容,则分号将起作用。正如@kynan简洁地总结的那样,“这之所以有效,是因为笔记本显示了最后一个命令的返回值。通过添加;最后一个命令是“无”,因此没有要显示的返回值。” 但是,在生成对象的单元格中有一个循环。 罪魁祸首似乎是plt.clf()。注释
<Figure size 432x288 with 0 Axes>
如果单元格最后一行的典型输出是您试图抑制的内容,则分号将起作用。正如@kynan简洁地总结的那样,“这之所以有效,是因为笔记本显示了最后一个命令的返回值。通过添加;最后一个命令是“无”,因此没有要显示的返回值。” 但是,在生成对象的单元格中有一个循环。
罪魁祸首似乎是
plt.clf()
。注释掉该行或将其从代码中删除,它应该会修复该行。另外,我要删除
plt.show()
,因为删除plt.clf()
时不需要它,我看到它在循环中,导致fig=plt.figure(figsize=(15,4))
也显示输出文本,就像您在您的问题中发布的一样。(我将在后面为其他人补充,在单元格的开头(或在单元格上方的某个位置)有
%matplotlib inline
或%matplotlib notebook
)是很重要的。)是否将%matplotlib inline
或%matplotlib notebook
作为此单元格上方某个单元格中的第一行?谢谢。那么不可能抑制`'输出吗?那么您在某处有%matplolib inline
或matplolib笔记本
?它应该是可以抑制的。然而,您的代码不是一个可以直接调试的案例。我试图制作一个等效的玩具示例进行测试。我的测试表明plt.clf()
正在生成虚假输出。你能移除它并让你的图保持静止吗?
for i in tqdm_notebook(range(data.shape[0])):
print('BIN:',i)
fig = plt.figure(figsize=(15,4))
plt.tight_layout()
gs = gridspec.GridSpec(2,1)
ax1 = fig.add_subplot(gs[0, 0])
ax1.plot(match[window_begin:window_end],'k')
plt.vlines(i,-np.max(match[window_begin:window_end])*0.05,np.max(match[window_begin:window_end])*1.05,'r',linewidth=4,alpha=0.2)
ax1.set_xlim(0-1,post_bin_match_median[window_begin:window_end].shape[0])
ax1.set_ylim(-np.max(match[window_begin:window_end])*0.05,np.max(match[window_begin:window_end])*1.05)
plt.tick_params(axis='y', which='both', left=True, labelleft=False)
ax1.tick_params(axis='x', which='both', bottom=False, labelbottom=False)
plt.grid()
ax2 = fig.add_subplot(gs[1, 0])
fig.subplots_adjust(hspace=0.0)
ax2.plot(gp_mjds[:],gp_data[i,:],'k')
ax2.errorbar(remain, all[i,:], yerr=all_noise[i], fmt=".k", capsize=0);
ax2.fill_between(gp[:], gp2[i,:] - np.sqrt(gp_var[i,:]), gp2[i,:] + np.sqrt(gp_var[i,:]),color="k", alpha=0.2)
ax2.set_xlim(gp[0],gp[-1])
plot_y_min = np.minimum(np.min(gp2[:,:] - np.sqrt(gp_var[:,:])),np.min(all_profile_residuals[:,:]-y_noise))
plot_y_max = np.maximum(np.max(gp2[:,:] + np.sqrt(gp_var[:,:])), np.max(all[:,:]+y_noise))
ax2.set_ylim(plot_y_min,plot_y_max)
plt.grid()
plt.show()
plt.clf()
plt.close(fig);