red-blue colormap

🧩 Syntax:
import numpy as np
import matplotlib.pyplot as plt
from colorspacious import cspace_convert
from matplotlib.colors import ListedColormap

# Define RGB anchor colors
rgb_blue = np.array([0.0, 0.47, 1.0])     # Bright blue
rgb_red  = np.array([1.0, 0.2, 0.2])      # Bright red

# Convert RGB to CAM02-UCS
cam_blue = cspace_convert(rgb_blue, "sRGB1", "CAM02-UCS")
cam_red  = cspace_convert(rgb_red, "sRGB1", "CAM02-UCS")

# Interpolate in CAM02-UCS space using smoothstep
n = 256
t = np.linspace(0, 1, n)

def f(t):
    return 3 * t**2 - 2 * t**3
    

smooth_t = f(t)

# Interpolate
cam_interp = np.outer(1 - smooth_t, cam_blue) + np.outer(smooth_t, cam_red)

# Convert back to sRGB
rgb_interp = cspace_convert(cam_interp, "CAM02-UCS", "sRGB1")

# Clip to valid range and create colormap
rgb_interp = np.clip(rgb_interp, 0, 1)
cmap = ListedColormap(rgb_interp)

# Plot to visualize
plt.figure(figsize=(8, 1))
plt.imshow([np.linspace(0, 1, n)], aspect='auto', cmap=cmap)
plt.axis('off')
plt.title("Smoothstep Diverging Colormap")
plt.show()