From 87081009b4d371d1c05754abb81a3843ff388f13 Mon Sep 17 00:00:00 2001 From: Simon Lecoq <22963968+lowlighter@users.noreply.github.com> Date: Mon, 11 Sep 2023 20:54:45 -0400 Subject: [PATCH] fix(app/utils): pie graph when less than 3 values Needs to handle more than X values in the future, `d3.schemeSpectral` is not infinite --- source/app/metrics/utils.mjs | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/source/app/metrics/utils.mjs b/source/app/metrics/utils.mjs index 45105280..f210b9e8 100644 --- a/source/app/metrics/utils.mjs +++ b/source/app/metrics/utils.mjs @@ -959,8 +959,14 @@ export const Graph = { const V = Object.values(data) const I = d3.range(K.length).filter(i => !Number.isNaN(V[i])) + //Colors + const spectral = [...d3.schemeSpectral] + spectral[0] = ["#000000"] + spectral[1] = spectral[3].slice(0, 1) + spectral[2] = spectral[3].slice(0, 2) + //Construct arcs - const color = d3.scaleOrdinal(K, d3.schemeSpectral[K.length]) + const color = d3.scaleOrdinal(K, spectral[K.length]) const arcs = d3.pie().padAngle(1 / radius).sort(null).value(i => V[i])(I) const arc = d3.arc().innerRadius(0).outerRadius(radius) const labels = d3.arc().innerRadius(radius / 2).outerRadius(radius / 2)