Skip to content

Changelog

v0.0.3 (Unreleased)

New Features:

  • 色带数据库(DB):基于 SQLite 的 cmap_data.db 内置 85 条 matplotlib 色带,支持按类型、标签、色盲兼容性、关键词、来源筛选
  • 色带工厂:从数据库生成 matplotlib Colormap 对象,支持 Sequential / Diverging / Qualitative 三种类型
  • 自定义色带:用户可通过 cmap.add() 添加自己的色带,内置色带受保护不可覆盖
  • 自动同步:升级包时自动同步新版内置色带(_synced 单次会话只同步一次),同时保留用户自定义内容
  • 装饰器批量绘图@batch_cmaps 传递 Colormap 对象直接绘图,@batch_colors 传递原始数据库记录 dict,支持名称列表/ID列表/Collection/查询 kwargs/query_func 五种输入方式
  • 多子图导出:支持 single(独立窗口)和 grid(单图多子图)两种布局
  • ID 分区机制:内置色带 1-10000,自定义色带 10001 起递增
  • 输入验证cmap.add() 自动验证 hex 格式、cmap_type、name 非空、colors 非空
  • 渲染层ColormapRenderer 提供 to_image()/to_file()/render_grid(),支持 orientationsize 参数
  • 色带集合ColormapCollection 支持链式筛选 filter()、分组 group_by()、HTML 导出 to_html()、批量出图 export_images()
  • 数据管理cmap.remove()/cmap.export()/cmap.import_data()/cmap.records() 完整的色带增删改查
  • GIS 数据懒下载:cartopy 风格首次使用自动下载、本地缓存至 ~/.multicolor/data/、SHA256 校验、zip 解压支持
  • 数据 APIdata_list()/data_get()/data_ensure()/is_available()/data_remove()

Improvements:

  • cmap.records() 返回原始记录字典(不构建 Colormap 对象,轻量查询)
  • cmap.collection() 返回 ColormapCollection,支持链式操作
  • __version__ 改为 importlib.metadata 动态读取,与 pyproject.toml 自动同步
  • batch_cmaps 去重提取 _render_grid() 内部函数,修复 grid n=1 边界情况
  • 色带集合支持按 source 字段筛选来源(如 "matplotlib"/"colorbrewer"
  • 9 个示例 notebook 覆盖全部功能,新增 cartopy 地图渲染和 GIS 数据下载演示

Bug Fixes:

  • 修复 batch_cmaps grid 模式所有色带显示相同颜色的问题
  • 修复 _sync_builtins() 递归调用导致的 RecursionError
  • 修复 CI 测试 GUI 弹窗问题(matplotlib.use("Agg")
  • 修复 test_data.py mock 装饰器参数顺序导致的测试失败
  • 修复 notebook 缺少 outputs 字段导致的 MkDocs 构建失败
  • 修复 08_cartopy_maps.ipynb 栅格渲染不完整问题(imshow + extent + transform

v0.0.2 - 2026-05-17

  • 测试初始化是否成功

v0.0.1 - 2026-05-17

  • 项目初始化