You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何可视化带温度属性的(x,y)点并关联温度与色阶映射?

问题需求

现有包含x、y坐标及temperature字段的数据集(df.head()结果如下):

xytemperature
014.1549.5847.5
113.3034.7741.4
212.5342.7032.7
311.7445.7734.6
418.9842.7070.7

已使用如下Holoviews的Datashade代码进行可视化:

opts1 = hv.opts.RGB(width=1700, height=800)
df_ds = datashade(
    hv.Points(df),
    cmap=cc.CET_L4,
    kdims=["x", "y"],
    label="xy cordinate values",
    colorbar=True,
    min_alpha=0.3,
).opts(tools=["hover", "box_zoom"])
df_ds.opts(opts1)

可视化效果示意图

现需实现将temperature值与colormap关联,并在可视化中显示temperature数值,请求技术指导。


解决方案

要实现需求,需调整datashade参数、配置Points的数值维度,并自定义hover工具显示内容,具体步骤及代码如下:

1. 核心配置逻辑

  • 给hv.Points指定vdims参数,标记temperature为数值维度,供颜色映射使用
  • 修改datashade的aggregator参数,基于temperature的聚合值生成颜色
  • 自定义hover工具的显示字段,明确展示temperature数值

2. 完整修改代码

import holoviews as hv
import datashader as ds
import colorcet as cc

hv.extension('bokeh')

opts1 = hv.opts.RGB(width=1700, height=800)
# 指定数值维度为temperature
points = hv.Points(df, kdims=["x", "y"], vdims=["temperature"])
df_ds = datashade(
    points,
    cmap=cc.CET_L4,
    # 基于temperature的均值聚合映射颜色,可替换为ds.max/ds.min按需选择
    aggregator=ds.mean("temperature"),
    label="Temperature Distribution",
    colorbar=True,
    min_alpha=0.3,
).opts(
    tools=["hover", "box_zoom"],
    # 自定义hover显示内容
    tooltips=[
        ("x", "@x"),
        ("y", "@y"),
        ("Temperature", "@temperature")
    ]
)
df_ds.opts(opts1)

3. 关键说明

  • 聚合函数选择:数据密度高时用ds.mean平滑显示区域温度;需保留极值时改用ds.max/ds.min
  • 颜色映射:cc.CET_L4适配温度数据,也可替换为cc.fire等其他色板
  • hover显示:通过tooltips自定义字段,确保@temperature能正确读取数据集对应值

内容的提问来源于stack exchange,提问作者Debashish Samantaray

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.30 20:24:33