Я создаю анимированный линейный сюжет, используя matplotlib.animation
. Я явно создаю фигуру с пользовательским фоновым цветом go с фоновым цветом морского графика, например:
fig, ax = plt.subplots(ncols=1, nrows=3, figsize=(8, 13.5))
fig.patch.set_facecolor('#EAEAF2')
При построении с помощью plt.show()
вся фигура имеет серый фоновый цвет. Однако при анимации линейных графиков фон рисунка по умолчанию является белым (фон графика внутри оси по-прежнему остается серым цвета морской волны). Вот соответствующий код анимации:
plt.style.use('seaborn')
fig, ax = plt.subplots(ncols=1, nrows=3, figsize=(8, 13.5))
fig.patch.set_facecolor('#EAEAF2')
line, = ax[0].plot([], [])
vline = ax[0].axvline(x=5, color='gray')
def init():
line.set_data(scales, [np.nan] * len(scales))
return line,
def update(i):
y = data[i]
line.set_data(scales, y)
line.set_color(sns.cubehelix_palette(22)[i])
vline.set_xdata([i + 6])
return line, vline,
ani = animation.FuncAnimation(fig, update, init_func=init, interval=200, frames=22, blit=False)
ani.save('animation.gif')
Есть идеи, что здесь происходит? Почему аниматор меняет цвет фона? Как я могу контролировать цвет фона фигуры во время анимации?