Я пытаюсь создать тепловую карту матрицы 10x10. Все значения в матрице - это вероятности; сумма всех элементов, равная 1,0. Я решил использовать тип графика matshow (он казался простым в использовании), однако я не могу сгенерировать вывод, который хотел бы иметь до сих пор.Heatmap с matplotlib с использованием matshow
1.Визуально это выглядит как-то уродливо. Вы порекомендовали бы подходящую цветовую карту для использования в тепловой карте?
2. Есть ли способ назначить предопределенные ячейки карте цветов при использовании matshow? Например. возьмите градиент 1000 цветов, всегда используйте одни и те же цвета для соответствующих вероятностей. В поведении по умолчанию я думаю, что matshow проверяет минимальные и максимальные значения, назначая первый и последний цвета в градиенте для этих значений, а затем окрашивает значения между интерполяциями.
Иногда у меня очень похожие вероятности в матрице, а в других случаях диапазон вероятностей может быть большим. Из-за поведения по умолчанию, которое я попытался объяснить выше, я получаю похожие графики, что усложняет сравнение.
Мой код для создания указанных тепловых карт (и примерный график) внизу, кстати.
Спасибо!
import bumpy as np
def pickcoord():
i = np.random.randint(0,10)
j = np.random.randint(0,10)
return [i,j]
board = np.zeros((10,10))
for i in range(1000000):
try:
direction = np.random.randint(0,2)
new_board = np.zeros((10,10))
coords = pickcoord()
if direction == 1:
for k in range(2):
new_board[coords[0]][coords[1]+k] = 1
else:
for k in range(2):
new_board[coords[0]+k][coords[1]] = 1
except IndexError:
new_board = np.zeros((10,10))
board = board + new_board
board_prob = board/np.sum(board)
figure(figsize(6,6))
matshow(board_prob, cmap=cm.Spectral_r, interpolation='none')
plt.xticks(np.arange(0.5,10.5), [])
plt.yticks(np.arange(0.5,10.5), [])
plt.grid()
спасибо, 'vmin' и' vmax' сделали трюк! – marillion