我正在做一个 Bokeh 应用程序,其中有一个输入表,对其执行一些计算并生成一个新表。我正在尝试绘制这个新表的热图,所以我必须使用 LinearColorMapper 函数创建一个颜色条,但是我不能使用计算表(这是一个 ColumnDataSource)中的最小值和最大值,这就是该表存储:
def val_portafolio_mostrar():
val_portafolio=datos_calcular()
val_mapa=pd.DataFrame(val_portafolio.stack(), columns=['valoracion']).reset_index()
datos_heatmap.data=dict(val_mapa)
将在热图上绘制的值位于 datos_heatmap 的“valoracion”列中,这是我用于 LinearColorMapper 的代码
colors = ["#75968f", "#a5bab7", "#c9d9d3", "#e2e2e2", "#dfccce", "#ddb7b1", "#cc7878", "#933b41", "#550b1d"]
mapper = LinearColorMapper(palette=colors, low=min(datos_heatmap.data['valoracion']),
high=max(datos_heatmap.data['valoracion']))
但是我收到以下错误:
in mapper_fun
mapper = LinearColorMapper(palette=colors, low=min(datos_heatmap.data['valoracion']),
ValueError: min() arg is an empty sequence
我认为这是因为为了访问 ColumnDataSource 值,该函数需要具有“source”参数,但是 LinearColorMapper 函数没有此参数,因此无法以这种方式解决它。我还尝试将最大值和最小值存储在另一个 ColumnDataSource 中,但我得到了同样的错误,因为我没有使用源,而只是像“datos_heatmap.data ['valoracion']”中那样提取值
提前致谢!