diff --git a/src/components/charts/NetworkChart.tsx b/src/components/charts/NetworkChart.tsx index e99314c..a60ee89 100644 --- a/src/components/charts/NetworkChart.tsx +++ b/src/components/charts/NetworkChart.tsx @@ -31,7 +31,8 @@ export default forwardRef(function Networ const maxTime = Math.max(...allTimes); const range = maxTime - minTime; if (range === 0) return; - const padding = (endMs - startMs) * 0.5; + const MIN_PADDING = 15 * 60 * 1000; // 15분 + const padding = Math.max(MIN_PADDING, (endMs - startMs) * 0.5); const s = Math.max(0, ((startMs - padding - minTime) / range) * 100); const e = Math.min(100, ((endMs + padding - minTime) / range) * 100); chart.dispatchAction({ type: 'dataZoom', start: s, end: e }); diff --git a/src/components/charts/TimeSeriesChart.tsx b/src/components/charts/TimeSeriesChart.tsx index 4ee565f..55bbf12 100644 --- a/src/components/charts/TimeSeriesChart.tsx +++ b/src/components/charts/TimeSeriesChart.tsx @@ -37,7 +37,8 @@ export default forwardRef(function TimeSeries const maxTime = Math.max(...allTimes); const range = maxTime - minTime; if (range === 0) return; - const padding = (endMs - startMs) * 0.5; + const MIN_PADDING = 15 * 60 * 1000; // 15분 + const padding = Math.max(MIN_PADDING, (endMs - startMs) * 0.5); const s = Math.max(0, ((startMs - padding - minTime) / range) * 100); const e = Math.min(100, ((endMs + padding - minTime) / range) * 100); chart.dispatchAction({ type: 'dataZoom', start: s, end: e }); diff --git a/src/lib/analytics.ts b/src/lib/analytics.ts index 35cde3c..0130871 100644 --- a/src/lib/analytics.ts +++ b/src/lib/analytics.ts @@ -43,7 +43,7 @@ export function detectPeaks( const points = dataPoints.map((d) => { const zScore = stddev === 0 ? 0 : (d.value - mean) / stddev; - return { ...d, zScore, isPeak: Math.abs(zScore) > threshold }; + return { ...d, zScore, isPeak: zScore > threshold }; }); const peaks: PeakInfo[] = [];