{
  "id": "palette-tol-tolrainbow",
  "version": "1.0.0",
  "name": "Paul Tol · TolRainbow",
  "name_zh": "Paul Tol · TolRainbow",
  "author": "Paul Tol / Bokeh 3.5.2",
  "license": "BSD-3-Clause",
  "category": "style",
  "status": "community",
  "created_at": "2026-10-03",
  "updated_at": "2026-10-03",
  "series": [
    "#E8ECFB",
    "#D9CCE3",
    "#CAACCB",
    "#BA8DB4",
    "#AA6F9E",
    "#994F88",
    "#882E72",
    "#1965B0",
    "#437DBF",
    "#6195CF",
    "#7BAFDE",
    "#4EB265",
    "#90C987",
    "#CAE0AB",
    "#F7F056",
    "#F7CB45",
    "#F4A736",
    "#EE8026",
    "#E65518",
    "#DC050C",
    "#A5170E",
    "#72190E",
    "#42150A"
  ],
  "palette_kind": "sequential",
  "background": "#FFFFFF",
  "description": "Discrete ordered levels; preserve boundaries, never interpolate.",
  "description_zh": "离散有序等级；保留边界，不插值。",
  "use_zh": "离散有序等级；保留边界，不插值。",
  "use_en": "Discrete ordered levels; preserve boundaries, never interpolate.",
  "usage_mode": "heatmap",
  "cvd_level": "not_verified",
  "cvd_evidence_url": null,
  "source_credit": {
    "source": "Paul Tol / Bokeh 3.5.2",
    "url": "https://github.com/bokeh/bokeh/blob/3.5.2/src/bokeh/palettes.py",
    "licence": "BSD-3-Clause",
    "upstream_table": "TolRainbow23",
    "direction": "native",
    "scope": "Licensed colour data only; VoltPeer appearance fixture and renderer are original MIT work."
  },
  "tags": [
    "sequential",
    "tol",
    "scientific-palette"
  ],
  "classic": false,
  "scientific_review": "not_claimed",
  "template_collection": "palette-library-200",
  "recommended_series_count": 6,
  "warning": "Discrete rainbow must not be interpolated; use labelled discrete levels. Not a generic perceptually uniform heatmap.",
  "warning_zh": "离散彩虹不能插值，使用带标签的离散等级。",
  "discrete": true,
  "permissions": {
    "public_display": true,
    "registry": true,
    "automated_testing": true,
    "model_training": false
  },
  "saturation": "balanced",
  "saturation_hsv_mean": 0.573,
  "colorblind_status": "not_certified",
  "intended_background": "#FFFFFF",
  "dark_background_support": false,
  "palette_categories": [
    "sequential"
  ],
  "plot_code": "import matplotlib.pyplot as plt\nfrom matplotlib.colors import ListedColormap\n\n# Complete labelled colour stops; inspect the supplied table and usage notes.\ncolours = ['#E8ECFB', '#D9CCE3', '#CAACCB', '#BA8DB4', '#AA6F9E', '#994F88', '#882E72', '#1965B0', '#437DBF', '#6195CF', '#7BAFDE', '#4EB265', '#90C987', '#CAE0AB', '#F7F056', '#F7CB45', '#F4A736', '#EE8026', '#E65518', '#DC050C', '#A5170E', '#72190E', '#42150A']\ncmap = ListedColormap(colours)\nfig, ax = plt.subplots()\nimage = ax.imshow(values, cmap=cmap, vmin=minimum, vmax=maximum)\nfig.colorbar(image, ax=ax, label=unit)\nfor spine in ax.spines.values():\n    spine.set_visible(True)\nfig.savefig('new-figure.svg')\n",
  "preview_series_indices": [
    0,
    1,
    2,
    3,
    4,
    5
  ]
}
