I have a problem with my python project. Right now I'm doing a real-time graph plotting using pyserial for Arduino and matplotlib. I want to plot temperature sensor data from Arduino into a graph in real-time. after I got the data, I want to proceed with other lines code after close the graph displayed. In this situation, I want to print 'ok' after I close the graph display. Here is the code that I use :
import serial
import matplotlib.pyplot as plt
import time
plt.ion()
fig=plt.figure()   
i=0
x1=list()
y1=list()
isrun = True
ser = serial.Serial('COM3',9600)
i=0
ser.close()
ser.open()
run = True
while True:
    data1 = ser.readline()
    print(data1.decode())
    x1.append(i)
    y1.append(data1.decode())
    plt.plot(x1, y1)
    plt.title('Temperature')
    i += 1
    plt.pause(0.005)
    plt.show(block=False)
    # if plt.close() :
    #     run= False
    #     ser.close()
    #     break
print('ok')
In this case, I cannot print 'Ok' after close the real-time graph. It keeps on showing the graph even after I close it. It seems like they keep on doing the loop. I cannot find a way to break the loop and proceed with the next line code. How to break the loop for this case and proceed on the print 'ok'. Hope anyone can help..