Итак, я использую ответ на этот вопрос, чтобы раскрасить некоторые значения, которые у меня есть для некоторых полигонов, чтобы нанести их на экземпляр базовой карты. Я изменил функцию, найденную в этой ссылке, следующим образом. Проблема, с которой я сталкиваюсь, заключается в том, что мне нужно преобразовать строку, которую она возвращает, в шестнадцатеричную цифру, чтобы использовать ее, чтобы я мог раскрасить многоугольники. Но когда я конвертирую что-то вроде «0x00ffaa» в шестнадцатеричное число python, оно меняет его на «0xffaa», которое нельзя использовать для окрашивания многоугольника.
Как я могу обойти это?
Вот измененная функция:
def rgb(mini,maxi,value):
mini, maxi, value = float(mini), float(maxi), float(value)
ratio = 2* (value - mini) / (maxi-mini)
b = int(max(0,255*(1-ratio)))
r = int(max(0,255*(ratio -1)))
g = 255 - b - r
b = hex(b)
r = hex(r)
g = hex(g)
if len(b) == 3:
b = b[0:2] + '0' + b[-1]
if len(r) == 3:
r = r[0:2] + '0' + r[-1]
if len(g) == 3:
g = g[0:2] + '0' + g[-1]
string = r+g[2:]+b[2:]
return string