Nano Hash - криптовалюты, майнинг, программирование

Как закрыть фигуру питона вводом с клавиатуры?

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

Фактически, программа на Python должна делать то же самое, что и этот код Matlab:

t = 0:0.01:2;
s = sin(2 * pi * t);

plot(t,s)

pause
close

В python я могу построить фигуру, но после ввода с клавиатуры ничего не происходит.

import numpy as np
import matplotlib.pyplot as plt

t = np.arange(0.0, 2.0, 0.01)
s = np.sin(2*np.pi*t)

#plt.ion()
fig = plt.figure()
plt.plot(t,s)
#plt.show()
plt.draw()

raw_input("PRESS ANY KEY TO CONTINUE.")
plt.close(fig)

До сих пор я заметил, что plt.close(fig) ничего не делает вместе с plt.show(). Однако, когда я вместо этого использую plt.draw(), plt.close(fig) закрывает фигуру. Тем не менее, когда я добавляю raw_input("PRESS ANY KEY TO CONTINUE.") в свою программу, цифра вообще не появляется.

Что я делаю не так?

Я также пробовал экспериментировать с plt.ion(), но безуспешно.

06.04.2014

Ответы:


1

что-то вроде этого может?

import numpy as np
import matplotlib.pyplot as plt

t = np.arange(0.0, 2.0, 0.01)
s = np.sin(2*np.pi*t)


fig = plt.figure()
plt.plot(t,s)
#plt.show()
plt.draw()
plt.pause(1) # <-------
raw_input("<Hit Enter To Close>")
plt.close(fig)
06.04.2014
  • @БорисЛ. тогда, пожалуйста, рассмотрите возможность пометить решение Джорана как ответ. 08.04.2014
  • @JoranBeasley, окно сюжета появляется на заднем плане. Мне нужно использовать мышь, чтобы щелкнуть и просмотреть график. Разве график не может выйти на передний план и простым нажатием Enter или q я могу закрыть его (как мы делаем для gnuplot)? 08.08.2015

  • 2

    Я думаю, что использование plt.waitforbuttonpress(0) может решить проблему использования raw_input():

    import numpy as np
    import matplotlib.pyplot as plt
    
    t = np.arange(0.0, 2.0, 0.01)
    s = np.sin(2*np.pi*t)
    
    fig = plt.figure()
    plt.plot(t,s)
    plt.draw()
    plt.waitforbuttonpress(0) # this will wait for indefinite time
    plt.close(fig)
    
    31.01.2017
  • это работает, если у нас есть ненулевое число для времени: plt.waitforbuttonpress(1). с нулем он просто продолжает ждать.. и не работает.. у меня работает вот что: plt.waitforbuttonpress(1); input(); plt.close(fig) 17.10.2019
  • Новые материалы

    Кластеризация: более глубокий взгляд
    Кластеризация — это метод обучения без учителя, в котором мы пытаемся найти группы в наборе данных на основе некоторых известных или неизвестных свойств, которые могут существовать. Независимо от..

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

    Частный метод Python: улучшение инкапсуляции и безопасности
    Введение Python — универсальный и мощный язык программирования, известный своей простотой и удобством использования. Одной из ключевых особенностей, отличающих Python от других языков, является..

    Как я автоматизирую тестирование с помощью Jest
    Шутка для победы, когда дело касается автоматизации тестирования Одной очень важной частью разработки программного обеспечения является автоматизация тестирования, поскольку она создает..

    Работа с векторными символическими архитектурами, часть 4 (искусственный интеллект)
    Hyperseed: неконтролируемое обучение с векторными символическими архитектурами (arXiv) Автор: Евгений Осипов , Сачин Кахавала , Диланта Хапутантри , Тимал Кемпития , Дасвин Де Сильва ,..

    Понимание расстояния Вассерштейна: мощная метрика в машинном обучении
    В обширной области машинного обучения часто возникает необходимость сравнивать и измерять различия между распределениями вероятностей. Традиционные метрики расстояния, такие как евклидово..

    Обеспечение масштабируемости LLM: облачный анализ с помощью AWS Fargate и Copilot
    В динамичной области искусственного интеллекта все большее распространение получают модели больших языков (LLM). Они жизненно важны для различных приложений, таких как интеллектуальные..