enhanced generate_cmap_norm with extend kwarg