Plot 如何使用Python3在“Bokeh”中使用连续颜色贴图制作“heatmap”?

Plot 如何使用Python3在“Bokeh”中使用连续颜色贴图制作“heatmap”?,plot,colors,widget,heatmap,bokeh,Plot,Colors,Widget,Heatmap,Bokeh,我试图复制这种将连续值映射到LinearColorMapper实例的热图样式: 我想制作一张包含图表或矩形的热图,然后添加一个来选择obsv_id,然后添加一个来查看日期 然而,我在开始时遇到了问题,热图本身只有一个obsv_id/日期对。创建此热图时我做错了什么?这实际上是大小变量和loc变量的3x3矩形图 奖励:你能帮我/给我一些关于如何连接这些小部件的输出以控制绘图的建议吗 我看过这些帖子,但所有的例子都使用实际的十六进制颜色作为列表,而不是使用连续的度量值进行映射: 初始化 将nump

我试图复制这种将连续值映射到LinearColorMapper实例的热图样式: 我想制作一张包含图表或矩形的热图,然后添加一个来选择obsv_id,然后添加一个来查看日期

然而,我在开始时遇到了问题,热图本身只有一个obsv_id/日期对。创建此热图时我做错了什么?这实际上是大小变量和loc变量的3x3矩形图

奖励:你能帮我/给我一些关于如何连接这些小部件的输出以控制绘图的建议吗

我看过这些帖子,但所有的例子都使用实际的十六进制颜色作为列表,而不是使用连续的度量值进行映射:

初始化 将numpy作为np导入 作为pd进口熊猫 从bokeh.plotting导入图形、输出\笔记本、输出\文件、重置\输出、显示、ColumnDataSource 从bokeh.models导入LinearColorMapper 复位输出 输出笔记本 np.random.0 坐标 日期=[07-3,07-11,08-6,08-28] locs=[空气、水、土壤] locs=[0,1,2] 大小=[3.0,0.2,0.025] 观察值=[obsv_ud%uu10]范围内的 数据 Ar_tmp=np.zeros lendates*lenlocs*lensize*lenobservations,5,dtype=object i=0 对于日期中的日期: 对于loc中的loc: 对于s尺寸: 对于观察中的obsv_id: Ar_tmp[i,:]=np.array[obsv_id,date,loc,s,np.random.random] i+=1 DF_tmp=pd.DataFrameAr_tmp,列=[obsv_id,日期,loc,大小,值] DF_tmp[value]=DF_tmp[value].astypefloat DF_tmp[size]=DF_tmp[size].astypefloat DF_tmp[loc]=DF_tmp[loc].astypefloat obsv_id日期loc大小值 0 obsv_0 07-3空气3.0 0.548814 1 obsv_1 07-3空气3.0 0.715189 2 obsv_2 07-3空气3.0 0.602763 3 obsv_3 07-3空气3.0 0.544883 4 obsv_4 07-3空气3.0 0.423655 映射器=LinearColorMapperlow=DF_tmp[值]。最小值,高值=DF_tmp[值]。最大值 创建单个观测和日期对的热图 查询\u idx=setDF\u tmp.index[DF\u tmp[obsv\u id]==obsv\u 0]&设置DF\u tmp.index[DF\u tmp[date]==08-28] p=HeatMapdata=DF_tmp.loc[query_idx,:],x=loc,y=size,values=value p=数字 p、 rectx=位置,y=尺寸, source=ColumnDataSourceDF_tmp.loc[query_idx,:], fill_color={'field':'value','transform':mapper}, 线条颜色=无 炫耀 我的错误:

# Javascript error adding output!
# TypeError: Cannot read property 'length' of null
# See your browser Javascript console for more details.
您必须提供一个到LinearColorMapper的链接。例如:

mapper = LinearColorMapper(
    palette='Magma256',
    low=DF_tmp["value"].min(),
    high=DF_tmp["value"].max()
)
从:

将范围[低、高]中的数字线性映射到调色板中的一系列颜色

与异常无关,但还需要将宽度和高度参数传递给p.rect

class LinearColorMapper(palette=None, **kwargs)