{[1, 0.75, 0.5, 0.25].map((i) => (
- {formatter.format(countMax * i)}
+ {scale === 'linear' ? '' : formatter.format(countMax * i)}
))}
@@ -31,62 +113,228 @@ const HistogramChart: FC<{ histogram: Histogram; index: number; scale: ScaleType
-
))}
- {positiveBuckets?.map((b, bIdx) => {
- const bucketIdx = `bucket-${index}-${bIdx}-${Math.ceil(parseFloat(b[3]) * 100)}`;
- const bucketLeft =
- scale === 'linear' ? (parseFloat(b[1]) / rangeMax) * 100 + '%' : (bIdx / positiveBuckets.length) * 100 + '%';
- const bucketWidth =
- scale === 'linear'
- ? ((parseFloat(b[2]) - parseFloat(b[1])) / rangeMax) * 100 + '%'
- : 100 / positiveBuckets.length + '%';
- return (
-
-
-
-
- range: {bucketRangeString(b)}
-
- count: {b[3]}
-
-
-
- );
- })}
+
+
+
+
+
+
+
-
- 0
+
+
+ {formatter.format(rangeMin)}
+ {rangeMin < 0 && zeroAxis && 0
}
+ {formatter.format(rangeMax)}
+
- {xLabelTicks.map((i) => (
-
-
{formatter.format(rangeMax * i)}
-
- ))}
);
};
+interface RenderHistogramProps {
+ buckets: [number, string, string, string][];
+ scale: ScaleType;
+ rangeMin: number;
+ rangeMax: number;
+ index: number;
+ fds: number[];
+ fdMax: number;
+ countMax: number;
+ defaultExpBucketWidth: number;
+ minPositive: number;
+ maxNegative: number;
+ startPositive: number;
+ startNegative: number;
+ xWidthNegative: number;
+ xWidthPositive: number;
+ xWidthTotal: number;
+}
+
+const RenderHistogramBars: FC