2016-01-01 2 views
2

Я пытаюсь рассеять некоторые потоковые точки на сюжете. Я использую интерактивный сюжет, удовлетворяющий plt.scatter() из пакета matplotlib в python. Каждые 5 секунд я буду разбрасывать очки. Мне не нужно держать все очки и накапливать их, но мне нужно сохранить последние 20 секунд. Любая помощь?Удаление разбросанных точек из matplotlib через некоторое время

def data_plotting(q): 
    fig = plt.figure(figsize=(8,8)) 
    ax = fig.add_subplot(111) 
    plt.ion() # Interactive mode 
    fig.show() 
    colors = plt.get_cmap('jet')(np.linspace(0.0, 1.0, clusterNum)) 

    while True: 
     if q.empty(): 
      time.sleep(5) 

     else: 
      obj=q.get() # (DenseVector([6.7456, 7.7456]), 0) 
      d=[x[0] for x in obj] 
      c=[x[1] for x in obj] 
      data = np.array(d) 
      pcolor=np.array(c) 

      try: 

       plt.scatter(data[:,0], data[:,1], marker='o', alpha = 0.5,color=colors[pcolor]) 
       plt.pause(0.0001) 
       plt.draw() 
       time.sleep(5) 
      except IndexError: # Empty array 
       pass 

ответ

0

Что вы можете сделать, это назначить поле даты и времени для каждой из ваших точек. После каждой итерации вы можете проверить, какие очки за последние 20 лет, а затем удалить их из набора данных.

Смежные вопросы