对bokeh s使用colormap

2024-09-28 22:08:29 发布

您现在位置:Python中文网/ 问答频道 /正文

matplotlib中,scatterplot提供了使用绘图颜色来指示值或大小的可能性,如此绘图:

enter image description here

对于bokeh,类似的examples似乎是手动生成rgb颜色,这使得很难生成按大小缩放颜色的图,特别是wrt。发散的彩色地图。

是否可以在bokeh中使用类似的功能,或者使用matplotlib颜色映射来设置颜色?


Tags: 功能绘图matplotlib颜色地图bokehrgb手动
1条回答
网友
1楼 · 发布于 2024-09-28 22:08:29

直接使用matplotlib的颜色映射非常简单。例如,下面在bokeh的示例中使用viridis(请注意,我使用的是jupyter笔记本):

import numpy as np

from bokeh.plotting import figure, show, output_notebook
import matplotlib as mpl

output_notebook()

N = 4000
x = np.random.random(size=N) * 100
y = np.random.random(size=N) * 100
radii = np.random.random(size=N) * 1.5
colors = [
    "#%02x%02x%02x" % (int(r), int(g), int(b)) for r, g, b, _ in 255*mpl.cm.viridis(mpl.colors.Normalize()(radii))
]

p = figure()

p.scatter(x, y, radius=radii,
          fill_color=colors, fill_alpha=0.6,
          line_color=None)

show(p)  

本质上,对于cm中的任何matplotlib colormap,使用值数组初始化它将返回一个数组,其中每个值替换为[r,g,b,a]范围内的值[0,1]。注意,这也假设所有值都在0到1之间;这里我使用matplot.colors.Normalize来确保这一点。

相关问题 更多 >