# 全局需求热力图设计说明

## 目标

从全局分类树中持续识别并输出大量具有外部搜索意义的平台需求。页面首先回答“全局哪里热、哪里冷”，同时直接给出需求结果；点击和下钻只用于追溯，不是产生需求的前置操作。

## 全局图

采用从左到右的分层冰柱热力图：

- 横向表示树的层级。
- 纵向完整容纳各个分支。
- 节点面积表示该节点所覆盖的子树规模。
- 节点颜色表示 `0～1` 的热度 Score。
- 冷区和暂无数据区域必须保留，作为全局比较基线。
- 全局状态不强制显示全部节点名称；悬停和下钻后再显示名称、关系和详细证据。
- 不为 2205 个节点绘制大量显式曲线，避免视觉噪声。
- 全局适配只是初始视野，不锁死画布尺寸；普通滚轮和单指负责浏览纵向长树，`Ctrl/⌘ + 滚轮`、双指和按钮负责缩放。
- 横轴选择层级时只隐藏更上层列，不把节点平铺成列表；被选层级仍作为多棵子树的根，后续父子层级继续向右展开。
- 从需求挂靠点定位时保留祖先语境；需求详情中的完整路径节点可继续切换到任一父节点，并展示该父节点的整棵子树。
- 横轴层级可以被选择为新的观察起点。例如选择三级后，根、一、二级不再占据画布宽度。
- 点击任意节点都提供完整祖先路径、“上一级”入口和同父级兄弟节点对比，不针对某个示例节点硬编码。

## 指标表达

页面不使用 P/H、百分位等技术表达，只展示：

- 热度 Score：`0～1`，综合四项先验与真实 ROV / VOV。
- 判断可信度：`0～1`，表达数据覆盖和多项证据的一致程度。
- 数据完全缺失必须单独标记，不得直接等同于热度 0。

颜色建议：

- `0.80～1.00`：高热。
- `0.60～0.79`：升温。
- `0.40～0.59`：绿色，中等。
- `0.20～0.39`：深蓝色，偏冷。
- `0～0.19`：浅蓝色，冷区。
- 数据完全缺失：灰色。

## 需求定义

需求是可以在外部平台表达真实搜索意图的词或语言：

- “战争”是宽泛需求，范围较大不代表不是需求。
- “抗日战争”是主题级需求。
- “毛泽东在抗日战争中的经历”是具体需求。
- “表象”是分类结构词，不是需求。
- “转发”单独出现通常是孤立动作，不是需求。
- “视频怎么转发给朋友”具有完整问题语义，是需求。

需求粒度分为宽泛、主题级、具体、长尾。粒度只描述范围，不评价需求好坏。

## 需求判断

需求是否成立不能由固定维度组合机械决定：

- 某个维度缺失，可能代表数据空白，不等于需求不存在。
- 热度很高但缺少独立搜索意义的结构词，不形成需求。
- 热度较低但搜索意图明确的词，可以成为需求或探索需求。
- 宽泛词可以成为父级需求，并继续下挂具体子需求。
- 需求可以拥有多个树上挂靠点。

## Reason

每条需求都输出两类说明：

- 数据事实：上游分类位置、四项先验、真实 ROV / VOV、元素及原始 reason。
- 模型解释：为什么该词具有搜索意义、为什么采用当前粒度、数据缺失如何处理、为什么形成或不形成需求。

模型解释必须明确标识，不能伪装成上游原始数据。

## 页面结构

1. 顶部：全局概览、热度图例和数据覆盖说明。
2. 主区域左侧：完整分层冰柱热力图。
3. 主区域右侧：系统批量生成的需求清单。
4. 下钻状态：放大选中分支，展示子需求、多个挂靠点、数据事实和模型 Reason。

视觉语言参考现有“05 · 最终输出结构”：蓝色主框架、橙色需求结果、紫色证据说明、充足留白和少量必要关系线。
