Данные здесь произвольные, они используются только для отображения проблем, которые у меня возникают. Мне нужно, чтобы контраст этой тепловой карты был выше, в идеале каждый квадрат был бы белым, если бы он содержал «-1», и черным, если бы он был выше этого. Пока документация, которую я нашел для различных цветовых схем, показывает их как градиенты, и мне не ясно, можно ли ими манипулировать так, чтобы каждое число выше "-1" было черным и все "-1" будут белыми.
import matplotlib.pyplot as plt
from matplotlib import colors
road=np.array([[-1 , -1 , -1 , 1 , -1 , 4 , -1 , -1 , -1 , -1 , 4 , -1 , 1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 ],
[-1 , -1 , -1 , 5 , 2 , -1 , -1 , -1 , -1 , 4 , -1 , -1 , -1 , -1 , -1 , 5 , -1 , -1 , -1 , -1 ],
[-1 , -1 , -1 , -1 , -1 , -1 , 3 , -1 , 5 , -1 , -1 , -1 , -1 , -1 , 5 , -1 , -1 , -1 , -1 , -1],
[-1 , -1 , -1 , 5 , -1 , -1 , -1 , -1 , -1 , 4 , -1 , -1 , -1 , 5 , -1 , -1 , -1 , -1 , -1 , 5],
[-1 , -1 , 5 , -1 , -1 , -1 , -1 , -1 , 5 , -1 , -1 , -1 , -1 , 5 , -1 , -1 , -1 , -1 , 5 , -1]])
fig, ax = plt.subplots()
im = ax.imshow(road)
ax.set_xticks(np.arange(20))
ax.set_yticks(np.arange(5))
plt.setp(ax.get_xticklabels(), ha="right",
rotation_mode="anchor")
for i in range(5):
for j in range(20):
if road[i,j] > -1:
text = ax.text(j, i, road[i, j],
ha="center", va="center", color="black")
fig.tight_layout()
plt.show()