Как подавить нежелательный вывод в Jupyter Notebook - PullRequest
0 голосов
/ 27 января 2020

Я хочу подавить любой текстовый вывод при запуске ячейки Jupyter Notebook. В частности, я вывожу некоторые цифры, и каждая сопровождается чем-то вроде:

<Figure size 432x288 with 0 Axes>

Я видел, что если я поставлю ; в конце строки, это должно подавить вывод, но это не так работает в моем случае.

код:

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);

1 Ответ

1 голос
/ 27 января 2020

Точка с запятой сработает, если типичный вывод из последней строки ячейки - это то, что вы пытаетесь подавить. Как кратко резюмируется @kynan здесь : «Причина, по которой это работает, заключается в том, что записная книжка показывает возвращаемое значение последней команды. При добавлении; последняя команда -« ничего », поэтому нет возвращаемого значения для показа» . "

Однако внутри ячейки, генерирующей объекты, есть все oop.
Кажется, виновником является plt.clf(). Закомментируйте эту строку или удалите ее из своего кода, и она должна исправить это.
Плюс, я бы удалил plt.show(), так как он не нужен, когда plt.clf() удален, и я вижу, что он находится в l oop, в результате чего fig = plt.figure(figsize=(15,4)) также отображает выводимый текст, который вы опубликовали в своем выпуске.
(я добавлю для других, рассматривающих это позже, что важно иметь %matplotlib inline или %matplotlib notebook в начале ячейки (или в начале ячейки где-то выше этой.))

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...