import matplotlib.pyplot as plt
import numpy as np
import os

def save_color_gradient(cmap_name='jet', width=512, height=50, filename=None):
    """
    保存颜色从 0 到 1 渐变的图像
    :param cmap_name: 色图名，如 'jet', 'viridis'
    :param width: 渐变图宽度（像素）
    :param height: 渐变图高度（像素）
    :param filename: 保存的文件名（可选）
    """
    cmap = plt.get_cmap(cmap_name)
    gradient = np.linspace(0, 1, width).reshape(1, -1)
    gradient = np.repeat(gradient, height, axis=0)


    plt.figure(figsize=(8, 1.5))
    plt.imshow(gradient, aspect='auto', cmap=cmap)
    plt.title(f"Color Gradient (colormap = '{cmap_name}')")
    plt.xlabel("Score: 0 → 1")
    plt.yticks([])
    plt.xticks([0, width//4, width//2, 3*width//4, width], [0.0, 0.25, 0.5, 0.75, 1.0])
    plt.tight_layout()

    # 默认文件名
    if filename is None:
        filename = f"color_gradient_{cmap_name}.png"

    # 保存图像
    plt.savefig(filename, dpi=150)
    plt.close()

    print(f"已保存: {os.path.abspath(filename)}")

# 调用：保存 jet 渐变图
save_color_gradient('jet')
