2024-09-28 22:08:29 发布
网友
在matplotlib中,scatterplot提供了使用绘图颜色来指示值或大小的可能性,如此绘图:
matplotlib
对于bokeh,类似的examples似乎是手动生成rgb颜色,这使得很难生成按大小缩放颜色的图,特别是wrt。发散的彩色地图。
bokeh
是否可以在bokeh中使用类似的功能,或者使用matplotlib颜色映射来设置颜色?
直接使用matplotlib的颜色映射非常简单。例如,下面在bokeh的示例中使用viridis(请注意,我使用的是jupyter笔记本):
viridis
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来确保这一点。
cm
直接使用
matplotlib
的颜色映射非常简单。例如,下面在bokeh
的示例中使用viridis
(请注意,我使用的是jupyter笔记本):本质上,对于
cm
中的任何matplotlib colormap,使用值数组初始化它将返回一个数组,其中每个值替换为[r,g,b,a]范围内的值[0,1]。注意,这也假设所有值都在0到1之间;这里我使用matplot.colors.Normalize来确保这一点。相关问题 更多 >
编程相关推荐