Подтвердить что ты не робот

Запретить отображение графика в юпитер-ноутбуке

Как я могу предотвратить отображение конкретного графика в ноутбуке Jupyter? У меня есть несколько графиков в записной книжке, но я хочу, чтобы их подмножество сохранялось в файле и не отображалось на ноутбуке, так как это значительно замедляется.

Минимальным рабочим примером для ноутбука Jupyter является:

%matplotlib inline 
from numpy.random import randn
from matplotlib.pyplot import plot, figure
a=randn(3)
b=randn(3)
for i in range(10):
    fig=figure()
    plot(b)
    fname='s%03d.png'%i
    fig.savefig(fname)
    if(i%5==0):
        figure()
        plot(a)

Как вы можете видеть, у меня есть два типа графиков: a и b. Я хочу, чтобы их отображали и показывали, и я не хочу, чтобы отображались участки b, я просто хочу, чтобы они были сохранены в файле. Надеюсь, это немного ускорит ситуацию и не загрязнит мой ноутбук цифрами, которые мне не нужно видеть.

Спасибо за ваше время

4b9b3361

Ответ 1

Возможно, просто очистите ось, например:

fig= plt.figure()
plt.plot(range(10))
fig.savefig("save_file_name.pdf")
plt.close()

не будет выводить вывод в режиме inline. Я не могу работать, если действительно очищает данные.

Ответ 2

Я смог предотвратить отображение фигур, отключив интерактивный режим, используя функцию

plt.ioff()

Ответ 3

Чтобы предотвратить выход из ячейки ноутбука jupyter, вы можете запустить ячейку с помощью

%%capture

Это может быть полезно в тех случаях, когда все остальные методы, показанные здесь, терпят неудачу.

Ответ 4

Я новичок, хотя и вне встроенного режима, когда вы не хотите видеть вывод в своем ноутбуке:

%matplotlib auto

или

%matplotlib

чтобы использовать его обратно:

%matplotlib inline

лучше было бы использовать следующее:

plt.ioff()

в котором отключен встроенный режим.

надеюсь, что это поможет.

Ответ 5

Начиная с IPython 6.0, есть еще одна возможность отключить встроенный вывод (временно или постоянно). Это было введено в этом запросе на растяжение.

Вы бы использовали бэкэнд "agg", чтобы не показывать какой-либо встроенный вывод.

%matplotlib agg

Кажется, что если вы сначала активировали встроенный сервер, это нужно дважды вызвать, чтобы вступить в силу.

%matplotlib agg
%matplotlib agg

Вот как это будет выглядеть в действии

cjEKC.png

Ответ 6

На Jupyter 6.0 я использую следующий фрагмент, чтобы выборочно не отображать значения lib на matplot.

import matplotlib as mpl

...

backend_ =  mpl.get_backend() 
mpl.use("Agg")  # Prevent showing stuff

# Your code

mpl.use(backend_) # Reset backend