Как управлять изменениями matplotlib figure.patch.facecolor при анимации? - PullRequest
0 голосов
/ 13 января 2020

Я создаю анимированный линейный сюжет, используя 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')

Есть идеи, что здесь происходит? Почему аниматор меняет цвет фона? Как я могу контролировать цвет фона фигуры во время анимации?

1 Ответ

1 голос
/ 13 января 2020

Нет, но сохраненные изображения всегда имеют белый цвет фона, если не указано иное, например

ani.save('animation.gif', writer="imagemagick", savefig_kwargs=dict(facecolor='#EAEAF2'))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...