Skip to content

Utilities¤

vape4d.utils ¤

diverging_alpha ¤
diverging_alpha(cmap: Colormap) -> Colormap

changes the alpha channel of a colormap to be diverging (0->1, 0.5 > 0, 1->1)

Parameters:

Name Type Description Default
cmap Colormap

colormap

required

Returns:

Name Type Description
Colormap Colormap

new colormap

Source code in vape4d/utils.py
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
def diverging_alpha(cmap: Colormap) -> Colormap:
    """changes the alpha channel of a colormap to be diverging (0->1, 0.5 > 0, 1->1)

    Args:
        cmap (Colormap): colormap

    Returns:
        Colormap: new colormap
    """
    cmap = cmap.copy()
    if isinstance(cmap, ListedColormap):
        cmap.colors = deepcopy(cmap.colors)
        for i, a in enumerate(cmap.colors):
            a.append(2 * abs(i / cmap.N - 0.5))
    elif isinstance(cmap, LinearSegmentedColormap):
        cmap._segmentdata["alpha"] = np.array(
            [[0.0, 1.0, 1.0], [0.5, 0.0, 0.0], [1.0, 1.0, 1.0]]
        )
    else:
        raise TypeError(
            "cmap must be either a ListedColormap or a LinearSegmentedColormap"
        )
    return cmap
linear_increasing_alpha ¤
linear_increasing_alpha(cmap: Colormap) -> Colormap

changes the alpha channel of a colormap to be linear (0->0, 1->1)

Parameters:

Name Type Description Default
cmap Colormap

colormap

required

Returns:

Name Type Description
Colormap Colormap

new colormap

Source code in vape4d/utils.py
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
def linear_increasing_alpha(cmap: Colormap) -> Colormap:
    """changes the alpha channel of a colormap to be linear (0->0, 1->1)

    Args:
        cmap (Colormap): colormap

    Returns:
        Colormap: new colormap
    """
    cmap = cmap.copy()
    if isinstance(cmap, ListedColormap):
        cmap.colors = cmap.colors.copy()
        for i, a in enumerate(cmap.colors):
            a.append(i / (cmap.N - 1))
    elif isinstance(cmap, LinearSegmentedColormap):
        cmap._segmentdata["alpha"] = np.array([[0.0, 0.0, 0.0], [1.0, 1.0, 1.0]])
    else:
        raise TypeError(
            "cmap must be either a ListedColormap or a LinearSegmentedColormap"
        )
    return cmap