色带自定义工具

2026算法项目
Python色彩科学可视化FastAPI

在线体验 — 色带离散化工具

格式: [[r,g,b], [r,g,b], ...] 值范围 0-255

#440154
#3b528a
#21918c
#5fc861
#fde725

5 级离散

[
  {
    "hex": "#440154",
    "rgb": [
      68,
      1,
      84
    ],
    "fraction": 0
  },
  {
    "hex": "#3b528a",
    "rgb": [
      59,
      82,
      138
    ],
    "fraction": 0.25
  },
  {
    "hex": "#21918c",
    "rgb": [
      33,
      145,
      140
    ],
    "fraction": 0.5
  },
  {
    "hex": "#5fc861",
    "rgb": [
      95,
      200,
      97
    ],
    "fraction": 0.75
  },
  {
    "hex": "#fde725",
    "rgb": [
      253,
      231,
      37
    ],
    "fraction": 1
  }
]

项目简介

一个面向科研绘图的色带(Colormap)自定义工具,用户可以选择或上传连续色带,指定分级数量,后端自动将其分割为离散色带,并返回色值列表和预览图。

功能特性

  • 内置色带库:提供 viridis、plasma、inferno、cividis 等常用科研色带
  • 自定义上传:支持用户上传自定义色带图片
  • 离散化分割:指定分级数量(如 5 级、10 级),自动计算每个区间的 RGB 值
  • 结果预览:生成离散色带预览图
  • 格式导出:支持导出为 CSV、JSON、Matplotlib ListedColormap 代码

技术实现

后端处理

核心逻辑由 Python FastAPI 后端实现:

  1. 接收连续色带数据(内置名称或上传的 RGB 采样点)
  2. 使用 matplotlib.colors 在指定区间内均匀采样
  3. 计算离散分级边界值
  4. 返回分级色值列表和预览图

前端交互

  • 色带选择器:下拉选择内置色带或拖拽上传图片
  • 分级数量输入:数字输入框或滑块
  • 实时预览:前端接收后端返回结果后立即渲染
  • 导出下载:一键下载 CSV/JSON 结果

使用场景

  • 科研论文地图配色标准化
  • GIS 数据可视化分级
  • 教学演示中展示色带分级效果