|
import numpy as np |
|
|
|
|
|
def hex_to_rgb(value): |
|
""" |
|
Calculates rgb values from a hex color code. |
|
|
|
:param (string) value: Hex color string |
|
|
|
:rtype (tuple) (r_value, g_value, b_value): tuple of rgb values |
|
""" |
|
value = value.lstrip("#") |
|
hex_total_length = len(value) |
|
rgb_section_length = hex_total_length // 3 |
|
return tuple( |
|
int(value[i : i + rgb_section_length], 16) |
|
for i in range(0, hex_total_length, rgb_section_length) |
|
) |
|
|
|
|
|
viridis = [ |
|
[0, "#440154"], |
|
[0.06274509803921569, "#48186a"], |
|
[0.12549019607843137, "#472d7b"], |
|
[0.18823529411764706, "#424086"], |
|
[0.25098039215686274, "#3b528b"], |
|
[0.3137254901960784, "#33638d"], |
|
[0.3764705882352941, "#2c728e"], |
|
[0.4392156862745098, "#26828e"], |
|
[0.5019607843137255, "#21918c"], |
|
[0.5647058823529412, "#1fa088"], |
|
[0.6274509803921569, "#28ae80"], |
|
[0.6901960784313725, "#3fbc73"], |
|
[0.7529411764705882, "#5ec962"], |
|
[0.8156862745098039, "#84d44b"], |
|
[0.8784313725490196, "#addc30"], |
|
[0.9411764705882353, "#d8e219"], |
|
[1, "#fde725"], |
|
] |
|
|
|
power = 0.23 |
|
|
|
|
|
for i in range(len(viridis)): |
|
viridis[i][0] = np.power(viridis[i][0], power) |
|
|
|
|
|
max_value = max(v[0] for v in viridis) |
|
for i in range(len(viridis)): |
|
viridis[i][0] /= max_value |
|
|
|
|
|
viridis.sort(key=lambda x: x[0]) |
|
viridis_rgb = [[x[0], "rgb" + str(hex_to_rgb(x[1]))] for x in viridis] |
|
|
|
|
|
viridis_rgb = [[x[0], y[1]] for x, y in zip(viridis_rgb, viridis_rgb[::-1])] |
|
|