matplotlib имеет встроенные цветовые карты, которые нормализуются между 0 и 1, но мы можем согласовать цветовую карту с вашими данными, нормализовав цветовую карту до минимального и максимального значений вашего distance_list.
Переменная color_list содержит каждый цвет, которому соответствуют ваши расстояния, если вам это нужно, и вы можете видеть, что ваши данные могут быть сопоставлены непосредственно с отметками на цветовой полосе.
import numpy as np
import matplotlib as mpl
import matplotlib.pyplot as plt
import matplotlib.cm as cm
distance_list = [0.1, 0.3, 0.4, 0.5, 1.2, 6, 8.1, 0.9, 5, 0.7]
min_val, max_val = min(distance_list), max(distance_list)
# use the coolwarm colormap that is built-in, and goes from blue to red
cmap = mpl.cm.coolwarm
norm = mpl.colors.Normalize(vmin=min_val, vmax=max_val)
# convert your distances to color coordinates
color_list = cmap(distance_list)
fig, ax = plt.subplots()
cb = mpl.colorbar.ColorbarBase(ax, cmap=cmap, norm=norm, ticks = sorted(distance_list), orientation='horizontal')
cb.set_label('Distance (least to greatest)')
ax.tick_params(axis='x', rotation=90)
plt.show()
> color_list
array([[0.34832334, 0.46571115, 0.88834616, 1. ],
[0.61931795, 0.74412073, 0.99893092, 1. ],
[0.75361062, 0.83023285, 0.96087116, 1. ],
[0.86742764, 0.8643766 , 0.86260246, 1. ],
[0.70567316, 0.01555616, 0.15023281, 1. ],
[0.70567316, 0.01555616, 0.15023281, 1. ],
[0.70567316, 0.01555616, 0.15023281, 1. ],
[0.83936494, 0.32185622, 0.26492398, 1. ],
[0.70567316, 0.01555616, 0.15023281, 1. ],
[0.96849975, 0.67397738, 0.55664926, 1. ]])