📜  如何在 Python-Bokeh 中使用调色板?(1)

📅  最后修改于: 2023-12-03 15:24:20.410000             🧑  作者: Mango

如何在 Python-Bokeh 中使用调色板?

在数据可视化中,调色板(Palette)是一种重要的工具,它为你的数据呈现提供了更多的颜色选择。

Python-Bokeh 是一个交互式数据可视化库,它支持多种调色板。本文将介绍如何在 Python-Bokeh 中使用调色板。

什么是调色板?

调色板是一组颜色值的集合,用于将数据映射到颜色。调色板可以是分类型的(为不同的类别选择不同的颜色),也可以是顺序型的(为数据的不同区间选择不同的颜色)。

Bokeh 中的调色板

Bokeh 中支持多种调色板。下面介绍几种常用的调色板。

1. Category20

Category20 是 Bokeh 中最常用的调色板之一。它包含 20 种不同的颜色,适用于分类型数据可视化。Category20 还有两个变体:Category20b 和 Category20c,它们分别包含更浅和更深颜色的版本。

from bokeh.palettes import Category20

colors = Category20[20] # 获取 Category20 中的 20 个颜色
2. Colorblind

Colorblind 是专门为色盲设计的调色板。它包含 8 种颜色,可以用于分类型或顺序型数据可视化。

from bokeh.palettes import Colorblind

colors = Colorblind[8] # 获取 Colorblind 中的 8 个颜色
3. Viridis、Magma 和 Inferno

Viridis、Magma 和 Inferno 是三种适用于顺序型数据可视化的调色板。它们分别具有渐变的蓝绿、红紫和黄黑色调,颜色分布平均。

from bokeh.palettes import Viridis, Magma, Inferno

colors = Viridis[256] # 获取 Viridis 中的 256 个颜色
如何在 Bokeh 中使用调色板?

使用调色板主要有两种方式:

1. 传入调色板名称

Bokeh 中的大部分图表类型都包含一个 palette 参数,用于指定调色板名称或颜色列表。

from bokeh.models import ColumnDataSource
from bokeh.plotting import figure, show

source = ColumnDataSource(data=dict(x=[1, 2, 3, 4], y=[2, 4, 6, 8], color=["blue", "red", "green", "yellow"]))
# 使用 Category20 调色板
p = figure(x_range=(0, 5), y_range=(0, 10), title="Example", toolbar_location=None, tools="")
p.circle(x="x", y="y", size=20, color="color", legend_field="color", source=source, palette="Category20")

show(p)
2. 创建自定义调色板

Bokeh 中还可以创建自定义的调色板。可以使用 LinearColorMapper 类,将数值范围映射到颜色列表。LinearColorMapper 的 palette 属性接受一个颜色列表。

from bokeh.models import LinearColorMapper
from bokeh.plotting import figure, show
from bokeh.transform import transform

import numpy as np

N = 20
source = ColumnDataSource(data=dict(x=list(np.random.normal(0, 1, N)), y=list(np.random.normal(0, 1, N)), sizes=np.random.uniform(10, 30, N), colors=np.random.normal(0, 1, N)))

# 创建自定义调色板
mapper = LinearColorMapper(palette=["red", "yellow", "green"], low=min(source.data["colors"]), high=max(source.data["colors"]))

p = figure(title="Example", toolbar_location=None, tools="")
r = p.circle(x="x", y="y", size="sizes", fill_color=transform("colors", mapper), line_color=None, source=source)
p.circle(x="x", y="y", size=8, fill_color="white", line_color="black", source=source)

show(p)
结论

调色板是数据可视化中不可或缺的工具,Bokeh 中提供了多种调色板供我们使用。本文介绍了几种常用的调色板以及如何在 Bokeh 中使用调色板。