У меня есть таблица пропорций, которую я создаю для значений, которые выглядят примерно так:
Затем я хочу создать шкалу цветов с верхним и нижним границы 1 и -1 соответственно.
event_y = (datetime.date.fromisoformat(start_date) + relativedelta(months = 2)).year
cdict = {'green': ((0.0, 0.0, 0.0), # no red at 0
(0.5, 1.0, 1.0), # all channels set to 1.0 at 0.5 to create white
(1.0, 0.8, 0.8)), # set to 0.8 so its not too bright at 1
'red': ((0.0, 0.8, 0.8), # set to 0.8 so its not too bright at 0
(0.5, 1.0, 1.0), # all channels set to 1.0 at 0.5 to create white
(1.0, 0.0, 0.0)), # no green at 1
'blue': ((0.0, 0.0, 0.0), # no blue at 0
(0.5, 1.0, 1.0), # all channels set to 1.0 at 0.5 to create white
(1.0, 0.0, 0.0)) # no blue at 1
}
# Create the colormap using the dictionary
GnRd = colors.LinearSegmentedColormap('GnRd', cdict)
fig, ax = plt.subplots(1, figsize=(10,10))
ax.axis('off')
ax.set_title(f'Change in Proportion of {race} Drivers Stopped By Service Area\n Event: {event} ({event_y})'.format(race,event,event_y), fontdict={'fontsize':'15','fontweight' : '3'})
sm = plt.cm.ScalarMappable(cmap=GnRd, norm=plt.Normalize(vmin=-1, vmax=1,clip=True))
fig.colorbar(sm)
heat_diff.plot(column='prop', cmap=GnRd, linewidth=0.8, ax=ax, edgecolor='0.8')
ScalarMappable требует аргумента нормализации, который затем изменяет истинные значения, которые я рисую, есть ли способ сделать это без нормализации, чтобы истинные значения оставались неизменными? Если верхний и нижний пределы цветов равны 1 и отрицательному 1?