Построение тепловой карты для строки фрейма данных, содержащей меры расстояния между агентами.

У меня есть фрейм данных из 3000 строк x 101 столбец, как показано ниже:

Time   id0  id1  id2     ………… id99
1      1.71 6.99 4.01    ………… 4.98
2      1.72 6.78 3.15    ………… 4.97
.
.
3000   0.36 0.23 0.14    ………… 0.28

Фактически меры в 100 столбцах (от id0 до id99) представляют собой расстояния до агентов в глобальной системе координат.

Можно ли создать тепловую карту для данной строки таким образом, чтобы связанная матрица (100x100) содержала различия в расстоянии между каждой парой агентов (id_i - id_j, с i и j / в {0..99}).


person khaldi    schedule 29.03.2018    source источник
comment
Я не уверен, что меня правильно поняли, но простое использование plt.imshow(dataframe) не решает этого?   -  person ilja    schedule 29.03.2018
comment
@ilja это не решает мою проблему. Я хочу это для одного ряда   -  person khaldi    schedule 29.03.2018
comment
Я добавил ответ (если на этот раз я прав ...), но вы должны использовать seaborn   -  person ilja    schedule 29.03.2018


Ответы (1)


Хорошо, если бы я получил это прямо сейчас, это то, что вы хотели бы (?)

A = np.random.randint(0, 10, 10)
M = [A - x for x in A]
fig, ax = plt.subplots()
seaborn.heatmap(M)
plt.show()

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

#A
array([1, 6, 0, 1, 5, 8, 1, 1, 9, 0])


#M:
[array([ 0,  5, -1,  0,  4,  7,  0,  0,  8, -1]),
 array([-5,  0, -6, -5, -1,  2, -5, -5,  3, -6]),
 array([ 1,  6,  0,  1,  5,  8,  1,  1,  9,  0]),
 array([ 0,  5, -1,  0,  4,  7,  0,  0,  8, -1]),
 array([-4,  1, -5, -4,  0,  3, -4, -4,  4, -5]),
 array([-7, -2, -8, -7, -3,  0, -7, -7,  1, -8]),
 array([ 0,  5, -1,  0,  4,  7,  0,  0,  8, -1]),
 array([ 0,  5, -1,  0,  4,  7,  0,  0,  8, -1]),
 array([-8, -3, -9, -8, -4, -1, -8, -8,  0, -9]),
 array([ 1,  6,  0,  1,  5,  8,  1,  1,  9,  0])]
person ilja    schedule 29.03.2018
comment
Привет @ilija, я думаю, что не лучше объяснил проблему. Здесь я переформулирую это. Предположим, что у меня есть массив A (a0, a1,…., A99) с мощностью 100. Я хочу сгенерировать матрицу M размером 100x100, которая содержит различия между каждым парным элементом A, то есть каждым элементом m_ij / in M = a_i - a_j для каждого i / in A и для каждого j / in A. Затем я хочу сгенерировать тепловую карту для данных M. - person khaldi; 29.03.2018
comment
Спасибо за объяснение, я многоуровневый. Я обновил свой ответ (например, 10 элементов вместо 100) или все еще что-то не так? :-) - person ilja; 29.03.2018
comment
Привет @ilija, это именно то, что я хотел. Спасибо за ваш ответ. - person khaldi; 30.03.2018