Подавить вывод в matplotlib

1

Вот как я замышляю

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.

  • 1
    Точки с запятой подавляют вывод в jupyter / IPython. Где и как вы запускаете этот код?
  • 0
    блокнот Jupyter
Показать ещё 2 комментария
Теги:
matplotlib

2 ответа

1
Лучший ответ

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

from matplotlib import pyplot

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

Обратите внимание: в отличие от MATLAB, полуколоны не подавляют вывод в python, они просто используются для разграничения различных операторов и обычно не нужны, если вы используете новые строки как разделители (что является стандартным способом сделать это)

  • 0
    Спасибо, это работает. Есть ли более элегантный способ добиться этого?
  • 0
    Не то, что я знаю из...
0

Проблема задокументирована здесь https://github.com/ipython/ipython/issues/10794

Возможно, вы/что-то установили для своей интерактивной оболочки значение from IPython.core.interactiveshell import InteractiveShell InteractiveShell.ast_node_interactivity = "all"

Одним из решений является изменение all на last_expr

Следствием этого является то, что ячейка будет отображать выходные данные последнего выражения, а не каждое выражение. Конечно, вы все равно можете print что-нибудь, и это будет работать нормально.

Другое решение состоит в том, чтобы добавить ; до последнего выражения

например, вы можете добавить pass; в конце ячеек, которые будут подавлять вывод

Третий вариант, как предложено @sacul, назначать выходные данные переменным с использованием некоторой фиктивной переменной.

Убедитесь, что вы не используете эту переменную в другом месте

Ещё вопросы

Сообщество Overcoder
Наверх
Меню