diff --git a/apps/docs/src/components/IncomeDistribution.tsx b/apps/docs/src/components/IncomeDistribution.tsx index cd2cc64..3196c4d 100644 --- a/apps/docs/src/components/IncomeDistribution.tsx +++ b/apps/docs/src/components/IncomeDistribution.tsx @@ -75,7 +75,7 @@ export default function IncomeDistribution({ data, onSelect }: {
圆点:产品观测 竖线:样本均值 菱形:样本中位数。业务类别标题下各行按支付平台{splitModels && "及收费与交付模式"}分别统计;n为该组产品数。点击点或下表产品名可看原始证据。
-
{categoryGroups.map(({ category, rows }) => {rows.map((group, index) => +
{metric}样本统计;每行是类别下的一个统计组,CV使用样本标准差
业务类别支付平台 / 收费模式n均值中位数均值/中位数CV去除最大值后的均值 / 下降幅度产品与限制
{categoryGroups.map(({ category, rows }) => {rows.map((group, index) => {index === 0 && } diff --git a/apps/docs/src/styles/globals.css b/apps/docs/src/styles/globals.css index 7fc3b38..9877a0c 100644 --- a/apps/docs/src/styles/globals.css +++ b/apps/docs/src/styles/globals.css @@ -1473,6 +1473,13 @@ svg { flex-shrink: 0; } .research-distribution { margin: 24px 0 38px; } .research-distribution figure { margin: 20px 0; } +.ai-research .income-statistics { min-width: 1200px; } +/* Row-spanning category headings shift cell indexes between rows. */ +.ai-research .income-statistics td { min-width: 0; } +.ai-research .income-statistics th[scope="rowgroup"] { min-width: 150px; white-space: nowrap; } +.ai-research .income-statistics th[scope="rowgroup"] small { display: block; margin-top: 5px; } +.ai-research .income-statistics td:not(:last-child) { white-space: nowrap; } +.ai-research .income-statistics td:last-child { min-width: 220px; } .income-distribution-chart { display: block; width: 100%; min-width: 900px; height: auto; } .income-distribution-chart [role="button"] { cursor: pointer; outline: none; } .income-distribution-chart [role="button"]:focus circle:last-child { stroke: #b17725; stroke-width: 3; }
{metric}样本统计;每行是类别下的一个统计组,CV使用样本标准差
业务类别支付平台 / 收费模式n均值中位数均值/中位数CV去除最大值后的均值 / 下降幅度产品与限制
{categories.get(category)}{rows.length}个统计组{group.provider}{group.model}{group.stats.n}{usd(group.stats.mean)}{usd(group.stats.median)}{group.stats.meanMedianRatio?.toFixed(2) ?? "—"}{group.stats.cv?.toFixed(2) ?? "—"}{usd(group.stats.meanWithoutLargest)}{percent(group.stats.largestRemovalDrop)} {group.points.map((point) => {" "})}{group.stats.n < 3 ? "样本少于3,不能据此判断领域典型收入。" : "自选的小样本,须结合产品年龄、成本与留存评估。"}