У меня есть ряд рядов данных, которые я хочу сохранить как видео.Различные ряды данных должны появляться один за другим, сохраняя прежний ряд.В конце концов все серии показаны на сюжете.Я хочу сделать это с несколькими рядами данных / графиками синхронным способом.Я хочу, чтобы участки имели разные размеры, поэтому, насколько я понял, мне нужно сделать это с помощью GridSpec.Тем не менее, с GridSpec я не могу сохранить старые серии при добавлении новых (я получаю только последние серии данных).
Пример моего кода (показывает принцип - мой подлинный сценарий более сложный): Работа с индексом / положением (но только на равных участках):
import numpy as np
import matplotlib.pyplot as plt
import matplotlib.animation as anim
figure = plt.figure()
data = np.array([1,2,3,4,5])
set = np.array([1,2,3,4])
def make_frame(i):
ax1 = plt.subplot(121)
x = data
y = i*x
ax1.set_ylim(0,25)
ax1.plot(x,y)
ax2 = plt.subplot((122), sharey = ax1)
a = data*2
b = i/x*3
ax2.plot(a,b)
plt.pause(1)
ani = anim.FuncAnimation(figure, make_frame, frames = set, repeat = False)
plt.show()
Не сохраняетсястарые серии (но с возможностью настройки количества столбцов / строк для каждого графика):
import numpy as np
import matplotlib.pyplot as plt
import matplotlib.animation as anim
from matplotlib.gridspec import GridSpec
figure = plt.figure()
data = np.array([1,2,3,4,5])
set = np.array([1,2,3,4])
print(data,set)
def make_frame(i):
gs1 = GridSpec(1,2)
ax1 = plt.subplot(gs1[0,0])
x = data
y = i*x
ax1.plot(x,y)
ax2 = plt.subplot(gs1[0,1], sharey = ax1)
a = data
b = i/x*3
ax2.plot(a,b)
ax1.set_ylim(0,25)
plt.pause(0.5)
ani = anim.FuncAnimation(figure, make_frame, frames = set, repeat = False)
plt.show()
Как сохранить «историю построения» в решении GridSpec?