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 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);
|
||||
|
||||
Reference in New Issue
Block a user