Как закрыть графики в функции в python? - PullRequest
0 голосов
/ 05 апреля 2020

В моем коде я хочу построить и закрыть фигуру в функции, я ожидаю, что смогу увидеть фигуры всплывающими и закрывающимися в течение 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)

1 Ответ

0 голосов
/ 06 апреля 2020

получается, что для сюжета 8 подзаголовков требуется много времени для обновления sh, при аренде здесь 0,3 секунды, поэтому просто измените plt.pause(0.001) на plt.pause(0.3), чтобы решить эту проблему

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...