Я использую Jupyter Notebook с Python 3.7 на MacOS
Я собрал много данных, и теперь я хочу отобразить их по одному за раз и циклически перемещаться по графикам, используя для l oop. Однако я хочу сделать паузу для просмотра каждого графика и нажать любую клавишу, чтобы перейти к следующему.
Я попытался ввести («Нажмите ENTER, чтобы продолжить ...»), но он создает новую строку после каждого графика и заставляет всю ячейку Jupyter прокручиваться вверх каждый раз, когда я нажимаю клавишу Enter, потому что она создает новую строку для каждого ввода.
Поэтому я пытаюсь использовать библиотеку curses stdscr.getch () для захвата ввода с клавиатуры - однако он не обнаруживает нажатий клавиш клавиатуры.
import curses
%matplotlib notebook
fig,ax = plt.subplots(figsize=(10, 8))
ch = 1
for col in df.columns:
if int(col) % 2 == 0: # even columns are time
xs = df[col]
else: # odd columns are voltage
if ch == 2:
ys = df[col]
ax.plot(xs, ys, 'b')
ax.set_xlabel('X') ; ax.set_ylabel('Y')
ax.set_xlim(-30,260) ; ax.set_ylim(-10000,10000)
fig.canvas.draw()
#input('Press ENTER to continue...')
stdscr = curses.initscr()
stdscr.keypad(True)
while True:
key = stdscr.getch()
if key != -1:
print(key)
if key == 27: # This is the escape key code
curses.endwin()
break
ax.cla()
ch = 1
else:
ch = 2
Однако, в то время как True l oop, ключ всегда равен -1. Независимо от того, какую клавишу я нажимаю, она всегда равна -1, что означает, что она вообще не обнаруживает нажатий клавиш. Что мне не хватает? Как использовать stdscr.getch () для обнаружения нажатия клавиш в Jupyter Notebook на MacOS?
Спасибо!