diff --git a/src/routes/hot-map.tsx b/src/routes/hot-map.tsx index 541df80..26f7e48 100644 --- a/src/routes/hot-map.tsx +++ b/src/routes/hot-map.tsx @@ -35,9 +35,9 @@ const MODES: { key: 1 | 4; label: string }[] = [ /* 图视图股票节点上限:按覆盖题材数降序保留最高穿透度的核心股 */ const MAX_STOCK_NODES = 800; -/* 题材节点半径范围:按题材涨幅绝对值映射(涨得越猛球越大) */ -const THEME_MIN_RADIUS = 6; -const THEME_MAX_RADIUS = 20; +/* 题材节点半径范围:按题材涨幅绝对值平方根映射(涨得越猛球越大,小涨幅区分更明显) */ +const THEME_MIN_RADIUS = 4; +const THEME_MAX_RADIUS = 22; /* 视图切换:关系图 / 核心股列表 */ type ViewMode = "graph" | "list"; @@ -673,7 +673,8 @@ function HotMapGraph({ graph }: { graph: ThemeGraph }) { code: t.themeCode, coverCount: t.stockCount, 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);