feat: 题材小球改平方根映射,拉大中小涨幅区分度
线性映射被极端涨幅拉平均,多数 0~3% 题材球挤在最小值附近。 改平方根映射:零涨幅 4px、1%≈10px、3%≈15px、极值 22px, 中等涨幅区间球径差显著放大。碰撞力半径动态跟随节点,无需额外适配。 Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
@@ -35,9 +35,9 @@ const MODES: { key: 1 | 4; label: string }[] = [
|
|||||||
/* 图视图股票节点上限:按覆盖题材数降序保留最高穿透度的核心股 */
|
/* 图视图股票节点上限:按覆盖题材数降序保留最高穿透度的核心股 */
|
||||||
const MAX_STOCK_NODES = 800;
|
const MAX_STOCK_NODES = 800;
|
||||||
|
|
||||||
/* 题材节点半径范围:按题材涨幅绝对值映射(涨得越猛球越大) */
|
/* 题材节点半径范围:按题材涨幅绝对值平方根映射(涨得越猛球越大,小涨幅区分更明显) */
|
||||||
const THEME_MIN_RADIUS = 6;
|
const THEME_MIN_RADIUS = 4;
|
||||||
const THEME_MAX_RADIUS = 20;
|
const THEME_MAX_RADIUS = 22;
|
||||||
|
|
||||||
/* 视图切换:关系图 / 核心股列表 */
|
/* 视图切换:关系图 / 核心股列表 */
|
||||||
type ViewMode = "graph" | "list";
|
type ViewMode = "graph" | "list";
|
||||||
@@ -673,7 +673,8 @@ function HotMapGraph({ graph }: { graph: ThemeGraph }) {
|
|||||||
code: t.themeCode,
|
code: t.themeCode,
|
||||||
coverCount: t.stockCount,
|
coverCount: t.stockCount,
|
||||||
bf3: t.bf3,
|
bf3: t.bf3,
|
||||||
radius: THEME_MIN_RADIUS + (Math.abs(bf3) / maxAbsBf3) * (THEME_MAX_RADIUS - THEME_MIN_RADIUS),
|
// 平方根映射:同一个小涨幅区间内球径差异更大(线性映射被极端涨幅拉平均)
|
||||||
|
radius: THEME_MIN_RADIUS + Math.sqrt(Math.abs(bf3) / maxAbsBf3) * (THEME_MAX_RADIUS - THEME_MIN_RADIUS),
|
||||||
};
|
};
|
||||||
});
|
});
|
||||||
const edgeList: SimEdge[] = buildEdgesFromStocks(kept);
|
const edgeList: SimEdge[] = buildEdgesFromStocks(kept);
|
||||||
|
|||||||
Reference in New Issue
Block a user