Использование вывода awk для запуска команды

У вас по существу есть две возможности:

  1. Сделайте именно то, что вы сейчас делаете, но назовите graph1.clear() и graph2.clear() перед тем, как выполнить повторную передачу данных. Это самый медленный, но самый простой и наиболее надежный вариант.
  2. Вместо ретрансляции вы можете просто обновить данные объектов сюжета. Вам нужно будет внести некоторые изменения в свой код, но это должно быть намного быстрее, чем при каждом повторном использовании. Однако форма данных, которые вы рисуете, не может измениться, и если диапазон ваших данных меняется, вам необходимо вручную сбросить пределы оси x и y.

Чтобы привести пример второй опции:

import matplotlib.pyplot as plt
import numpy as np

x = np.linspace(0, 6*np.pi, 100)
y = np.sin(x)

# You probably won't need this if you're embedding things in a tkinter plot...
plt.ion()

fig = plt.figure()
ax = fig.add_subplot(111)
line1, = ax.plot(x, y, 'r-') # Returns a tuple of line objects, thus the comma

for phase in np.linspace(0, 10*np.pi, 500):
    line1.set_ydata(np.sin(x + phase))
    fig.canvas.draw()
    fig.canvas.flush_events()
20
задан Jotne 5 December 2013 в 08:00
поделиться