Создание тепловых карт в реальном времени в Python - PullRequest
0 голосов
/ 27 января 2019

Что я пытаюсь сделать:

Я пытаюсь создать тепловую карту в реальном времени, считывая данные из таблицы Excel в Pandas DataFrame и используя Seaborn для создания тепловой карты.Я вижу ошибку ниже, когда я выполняю код.Я что-то пропустил?Я также попробовал несколько других комбинаций, но результат не такой, как ожидалось.

Код:

fig = plt.figure()
ax = fig.add_subplot(1,1,1)

# The Animate function
def animate(i):
    """Preprocessing the columns to add Date and Time columsn by removing the HOURS columns"""
    arch_gen_file = pd.read_excel('arch_gen_1.xls',parse_dates=['HOUR'])
    arch_gen_file['Date'] = [d.date() for d in arch_gen_file['HOUR']]
    arch_gen_file['Time'] = [d.time() for d in arch_gen_file['HOUR']]
    arch_gen_file.drop(['HOUR'], axis=1,inplace=True)
    arch_gen_file_matrix = arch_gen_file.pivot("Date", "Time", "ARCHIVES")
    arch_gen_file_matrix = arch_gen_file_matrix.fillna(0.0)
    ax.clear()
    ax.plot(sns.heatmap(arch_gen_file_matrix,cmap='rocket'))    
anime = animation.FuncAnimation(fig,animate,interval=100)
plt.show()

Ошибка

TypeError: float() argument must be a string or a number, not 'AxesSubplot'

1 Ответ

0 голосов
/ 27 января 2019

Линия ax.plot(sns.heatmap(arch_gen_file_matrix,cmap='rocket')) не имеет большого смысла.plot потребует предоставить ему фактические данные.Вместо этого вы хотите вызвать sns.heatmap, поэтому замените эту строку на

sns.heatmap(arch_gen_file_matrix, cmap='rocket', ax=ax)
...