Анимация matplotlib добавляет странный прямоугольник в угол сюжета в MPEG - PullRequest
0 голосов
/ 12 марта 2020

Я использую пакет анимации matplotlib для создания анимированного графика.

Я использую пакет целлулоида, чтобы упростить вещи, и поэтому я могу нарисовать сюжет морского происхождения.

Я могу ' не могу понять, почему в сохраненном видео появляется небольшая рамка:

enter image description here

Вот мой код:

#%%
sns.set()
plt.style.use('seaborn-pastel')
sns.set_style('white',
              {"axes.axisbelow": False,
               "font.sans-serif": ['Futura'],
               })
sns.set_context("paper", font_scale=1.5)


#%%
fig = plt.figure()
camera = Camera(fig)

for i in range(0, len(height_sample_data)+2, 2):
    plot1 = sns.scatterplot(x=0, y=height_sample_data.Height[:i],
                            hue=height_sample_data.col, alpha=0.75)
    sns.despine(bottom=True)
    plt.xticks([])
    plt.xlabel("")
    plt.ylabel("Height (cm)")
    plt.legend("", frameon=False)
    plt.text(-.1, 140, f"{i}/{len(height_sample_data)} DataPoints Plotted")
    plt.xlim(-0.5, 0.5)
    plt.ylim(130, 220)
    camera.snap()
anim = camera.animate(blit=True)
anim.save('Chapter6/Animations/AddingDots.mp4')

I запустил почти тот же сюжет (без анимации) и сохранил его в png, а не в MPEG, и окно исчезло, так что, похоже, что-то связано с анимацией. Сначала я подумал, что это был набросок легенды, но, как мне кажется, я скрываю это правильно.

Редактировать: Я нахожусь на ma c (Каталина) и использую ffmpeg в качестве mpeg saver, установленного через homebrew.

1 Ответ

0 голосов
/ 12 марта 2020

Я идиот. Это была на самом деле легенда. Мой оригинальный код для удаления легенды предназначался для использования с объектом ax (axes). Из plt мне нужно было позвонить

plt.legend("", frameon=False)

Это избавит от кадра, который вызывал маленький квадрат. "" Удаляет содержимое, но не фрейм.

...