Анимированная тепловая карта из словаря Pandas DataFrames - PullRequest
0 голосов
/ 05 января 2020

Я хотел бы построить анимированную тепловую карту из группы DataFrames (например, сохраненной в словаре), как gif или mov ie.

Например, скажем, у меня есть следующая коллекция ДФ. Я могу отобразить все из них один за другим. Но я хотел бы, чтобы все они отображались на том же рисунке так же, как показано в GIF (все oop тепловых карт).

import pandas as pd
import numpy as np
import seaborn as sns
import matplotlib.pyplot as plt

dataframe_collection = {}

for i in range(5):
    dataframe_collection[i] = pd.DataFrame(np.random.random((5,5)))

    # Here within the same loop just for brevity
    sns.heatmap(dataframe_collection[i])
    plt.show()

1 Ответ

0 голосов
/ 05 января 2020

Самый простой способ - сначала создать отдельные изображения PNG, а затем использовать программное обеспечение, такое как ImageMagick, для преобразования их в анимированный GIF.

Пример создания файлов PNG:

import pandas as pd
import numpy as np
from matplotlib import pyplot as plt

dataframe_collection = {}
for i in range(5):
    dataframe_collection[i] = pd.DataFrame(np.random.random((5,5)))
    #plt.pcolor(dataframe_collection[i])
    sns.heatmap(dataframe_collection[i])
    plt.gca().set_ylim(0, len(dataframe_collection[i])) #avoiding problem with axes
    plt.axis('off')
    plt.tight_layout()
    plt.savefig(f'dataframe_{i}.png')

После установки ImageMagick следующая команда оболочки создает gif. Если значения по умолчанию не удовлетворяют, используйте документы , чтобы изучить множество вариантов.

convert.exe -delay 20 -loop 0 dataframe_*.png dataframes.gif

См. Также этот пост о создании анимации и анимированный GIF внутри matplotlib.

Обратите внимание, что тепловая карта Seaborn также имеет некоторые функции, такие как sns.heatmap(dataframe_collection[i], annot=True).

Если вы не можете использовать ImageMagick, вы можете показать видео, быстро отображая одиночные png файлы, имитирующие видео. Эта и эта запись содержит больше объяснений и пример кода. Особенно вторая часть этот ответ выглядит многообещающе.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...