В моем коде я хочу построить и закрыть фигуру в функции, я ожидаю, что смогу увидеть фигуры всплывающими и закрывающимися в течение 10 раз, но я очень удивлен, увидев, что иногда это просто появляется пустая фигура, также используйте plt.pause(0.001)
или plt.pause(0.0001)
отображает разные результаты!
import numpy as np
import matplotlib.pyplot as plt
import time
sampling_points = 30
figure_list=[]
def plot_cycle_data(a1,a2):
#for each cycle, plot all
global figure_list
x = range(sampling_points)
#close if opened before
if len(figure_list) != 0:
plt.close(figure_list[0])
figure_list[:] = []
fig_cycle, ax = plt.subplots(4, 2)
ax[0, 0].scatter(x,a1[0])
ax[1, 0].scatter(x,a1[1])
ax[2, 0].scatter(x,a1[2])
ax[3, 0].scatter(x,a1[3])
ax[0, 1].scatter(x,a2[0])
ax[1, 1].scatter(x,a2[1])
ax[2, 1].scatter(x,a2[2])
ax[3, 1].scatter(x,a2[3])
#plt.draw()
plt.pause(0.0001)
plt.show(block=False)
figure_list.append(fig_cycle)
# for each chamber, 4 optical channels,30(or n) data points per channel
container_1 = np.zeros([4,sampling_points])
container_2 = np.zeros([4,sampling_points])
for i in range(10):
plot_cycle_data(container_1,container_2)
time.sleep(0.5)