Генерировать тепловую карту циклических непрерывных объектов — 24-часовое время

#python #pandas #time #heatmap #scatter-plot

#python #pandas #время #тепловая карта #точечный график

Вопрос:

Имея Pandas DF с часом дня, я рассчитал функцию времени sin / cos на основе этой статьи:

   counter        hour      sin_time      cos_time
0       1           1  2.588190e-01  9.659258e-01
1       0           2  5.000000e-01  8.660254e-01
2       2           3  7.071068e-01  7.071068e-01
3       0           4  8.660254e-01  5.000000e-01
...
19      0          20 -8.660254e-01  5.000000e-01
20      0          21 -7.071068e-01  7.071068e-01
21      1          22 -5.000000e-01  8.660254e-01
22      0          23 -2.588190e-01  9.659258e-01
 

Я пытаюсь построить тепловую карту, основанную на X, Y времени sin / cos и значении счетчика, поэтому, если счетчик равен 0, точка не добавляется. Я поискал в Google и написал следующий код:

 import numpy as np
import numpy.random
import matplotlib.pyplot as plt

# Generate some test data
x = raw_df_tz['sin_time']
y = raw_df_tz['cos_time']

heatmap, xedges, yedges = np.histogram2d(x, y, bins=50)
extent = [xedges[0], xedges[-1], yedges[0], yedges[-1]]

plt.clf()
plt.imshow(heatmap.T, extent=extent, origin='lower')
plt.show()
 

Вывод:


введите описание изображения здесь

Как я могу включить значение счетчика и соответствующим образом повлиять на символ?

Ответ №1:

Обнаружил, что вы можете добавить аргумент веса в histogram2d:

 np.histogram2d(x, y, weights=w, bins=50) 
 

итак, w — это моя колонка счетчика:
введите описание изображения здесь