Ответ 1
Возможно, просто очистите ось, например:
fig= plt.figure()
plt.plot(range(10))
fig.savefig("save_file_name.pdf")
plt.close()
не будет выводить вывод в режиме inline
. Я не могу работать, если действительно очищает данные.
Как я могу предотвратить отображение конкретного графика в ноутбуке 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, я просто хочу, чтобы они были сохранены в файле. Надеюсь, это немного ускорит ситуацию и не загрязнит мой ноутбук цифрами, которые мне не нужно видеть.
Спасибо за ваше время
Возможно, просто очистите ось, например:
fig= plt.figure()
plt.plot(range(10))
fig.savefig("save_file_name.pdf")
plt.close()
не будет выводить вывод в режиме inline
. Я не могу работать, если действительно очищает данные.
Я смог предотвратить отображение фигур, отключив интерактивный режим, используя функцию
plt.ioff()
Чтобы предотвратить выход из ячейки ноутбука jupyter, вы можете запустить ячейку с помощью
%%capture
Это может быть полезно в тех случаях, когда все остальные методы, показанные здесь, терпят неудачу.
Я новичок, хотя и вне встроенного режима, когда вы не хотите видеть вывод в своем ноутбуке:
%matplotlib auto
или
%matplotlib
чтобы использовать его обратно:
%matplotlib inline
лучше было бы использовать следующее:
plt.ioff()
в котором отключен встроенный режим.
надеюсь, что это поможет.
Начиная с IPython 6.0, есть еще одна возможность отключить встроенный вывод (временно или постоянно). Это было введено в этом запросе на растяжение.
Вы бы использовали бэкэнд "agg", чтобы не показывать какой-либо встроенный вывод.
%matplotlib agg
Кажется, что если вы сначала активировали встроенный сервер, это нужно дважды вызвать, чтобы вступить в силу.
%matplotlib agg
%matplotlib agg
Вот как это будет выглядеть в действии
На 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