diff --git a/src/Diagram.svelte b/src/Diagram.svelte
index ea77fabdb..16211e776 100644
--- a/src/Diagram.svelte
+++ b/src/Diagram.svelte
@@ -22,6 +22,9 @@
// The highest value on the y axis
let commitCountArray: number[] = [];
+ // The minimal amplitude shown e.g. commitCount = 1 => `minimalHeight` points of height in the SVG.
+ let minimalHeight = 5;
+
let week = 0;
for (const point of points) {
@@ -43,10 +46,15 @@
// Normalizes the values to the viewBox dimensions
let normalizedArray =
- commitCountArray.map(c =>
- // When max and min value are 0 we want to make sure the normalization is not being run since it would return NaN
- c === 0 ? 0 : (viewBoxHeight - 0) * (c - minValue) / (maxValue - minValue)
- );
+ commitCountArray.map(c => {
+ // If we are not crossing the `viewBoxHeight` we want to return the actual value,
+ // and don't want to normalize <`minimalHeight` commit counts as huge spikes.
+ if (maxValue < viewBoxHeight && c >= minimalHeight) { return c; }
+ // If the value is 0..minimalHeight though we don't want to set it to the minimalHeight.
+ else if (c > 0 && c < minimalHeight) { return minimalHeight; }
+ // If the count is 0 we have to make sure the normalization is not being run since it would return NaN
+ else { return c === 0 ? 0 : (viewBoxHeight - 0) * (c - minValue) / (maxValue - minValue); }
+ });
let path = normalizedArray
.slice(1)
@@ -77,8 +85,13 @@
-
-
-
-
+ {#if points.length > 0}
+
+
+
+
+ {:else}
+
+
+ {/if}