Skip to content

Commit 8ab18c2

Browse files
committed
Layout grid for metrics
1 parent 5a61f9e commit 8ab18c2

File tree

1 file changed

+16
-27
lines changed

1 file changed

+16
-27
lines changed

src/components/ChartContainer.jsx

Lines changed: 16 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -410,28 +410,26 @@ export default function ChartContainer({
410410
);
411411
}
412412

413-
const stats = [];
414-
415413
const metricElements = metrics.map((metric, idx) => {
416414
const key = metric.name || metric.keyword || `metric${idx + 1}`;
417415
const dataArray = metricDataArrays[key] || [];
418416
const showComparison = dataArray.length === 2;
419417

418+
let stats = null;
420419
if (showComparison) {
421420
const normalDiff = getComparisonData(dataArray[0].data, dataArray[1].data, 'normal');
422421
const absDiff = getComparisonData(dataArray[0].data, dataArray[1].data, 'absolute');
423422
const relDiff = getComparisonData(dataArray[0].data, dataArray[1].data, 'relative');
424423
const mean = arr => (arr.reduce((s, p) => s + p.y, 0) / arr.length) || 0;
425-
stats.push({
426-
label: key,
424+
stats = {
427425
meanNormal: mean(normalDiff),
428426
meanAbsolute: mean(absDiff),
429427
meanRelative: mean(relDiff)
430-
});
428+
};
431429
}
432430

433431
return (
434-
<div key={key} className="min-w-[600px] flex flex-col gap-3">
432+
<div key={key} className="flex flex-col gap-3">
435433
<ResizablePanel title={key} initialHeight={440}>
436434
<ChartWrapper
437435
chartId={`metric-${idx}`}
@@ -452,32 +450,23 @@ export default function ChartContainer({
452450
/>
453451
</ResizablePanel>
454452
)}
453+
{stats && (
454+
<div className="bg-white rounded-lg shadow-md p-3">
455+
<h4 className="text-sm font-medium text-gray-700 mb-1">{key} 差值统计</h4>
456+
<div className="space-y-1 text-xs">
457+
<p>Mean Difference: {stats.meanNormal.toFixed(6)}</p>
458+
<p>Mean Absolute Error: {stats.meanAbsolute.toFixed(6)}</p>
459+
<p>Mean Relative Error: {stats.meanRelative.toFixed(6)}</p>
460+
</div>
461+
</div>
462+
)}
455463
</div>
456464
);
457465
});
458466

459467
return (
460-
<div className="overflow-x-auto">
461-
<div className="flex gap-3 w-max">
462-
{metricElements}
463-
</div>
464-
{stats.length > 0 && (
465-
<div className="bg-white rounded-lg shadow-md p-3 mt-3">
466-
<h3 className="text-base font-semibold text-gray-800 mb-2">差值分析统计</h3>
467-
<div className="grid grid-cols-1 md:grid-cols-2 gap-4">
468-
{stats.map(s => (
469-
<div key={s.label}>
470-
<h4 className="text-sm font-medium text-gray-700 mb-1">{s.label} 差值统计</h4>
471-
<div className="space-y-1 text-xs">
472-
<p>Mean Difference: {s.meanNormal.toFixed(6)}</p>
473-
<p>Mean Absolute Error: {s.meanAbsolute.toFixed(6)}</p>
474-
<p>Mean Relative Error: {s.meanRelative.toFixed(6)}</p>
475-
</div>
476-
</div>
477-
))}
478-
</div>
479-
</div>
480-
)}
468+
<div className="grid grid-cols-2 gap-3">
469+
{metricElements}
481470
</div>
482471
);
483472
}

0 commit comments

Comments
 (0)