Source code for ratansunpy.visualization.colormaps
from pathlib import Path
import numpy as np
from matplotlib.colors import LinearSegmentedColormap
import matplotlib
CMAPS_DIR = Path(__file__).absolute().parent.joinpath('colormap_files')
[docs]
def cmap_from_file(file_name: str,
cmap_name: str) -> LinearSegmentedColormap:
"""
Create a colormap from a CSV file containing RGB values.
:param file_name: Name of the CSV file (without extension) containing RGB data.
:type file_name: str
:param cmap_name: The name to assign to the generated colormap.
:type cmap_name: str
:return: A LinearSegmentedColormap object based on the RGB data.
:rtype: matplotlib.colors.LinearSegmentedColormap
"""
color_data = np.loadtxt(CMAPS_DIR.joinpath(file_name + '.csv'), delimiter=',')
r, g, b = color_data[:, 0], color_data[:, 1], color_data[:, 2]
i = np.linspace(0, 1, r.size)
color_dict = {
name: list(zip(i, el / 255.0, el / 255.0))
for el, name in [(r, 'red'), (g, 'green'), (b, 'blue')]
}
return LinearSegmentedColormap(cmap_name, color_dict)
[docs]
def std_gamma_2():
return cmap_from_file('std_gamma_2', 'std_gamma_2.csv')
colormaps_list = {
'std_gamma_2': std_gamma_2()
}
for name, colormap in colormaps_list.items():
matplotlib.colormaps.register(colormap, name=name)