mirror of https://github.com/status-im/consul.git
Rework sampling to avoid 0 case and always include min and max
This commit is contained in:
parent
73ac76bfe5
commit
773db64ffc
|
@ -117,11 +117,18 @@ Ember.Handlebars.helper('tomographyGraph', function(tomography, size) {
|
||||||
' <circle class="border" r="' + insetSize + '"/>' +
|
' <circle class="border" r="' + insetSize + '"/>' +
|
||||||
' </g>' +
|
' </g>' +
|
||||||
' <g class="lines">';
|
' <g class="lines">';
|
||||||
var sampling = 360 / tomography.n;
|
var distances = tomography.distances;
|
||||||
distances = tomography.distances.filter(function () {
|
|
||||||
return Math.random() < sampling
|
|
||||||
});
|
|
||||||
var n = distances.length;
|
var n = distances.length;
|
||||||
|
if (tomography.n > 360) {
|
||||||
|
// We have more nodes than we want to show, take a random sampling to keep
|
||||||
|
// the number around 360.
|
||||||
|
var sampling = 360 / tomography.n;
|
||||||
|
distances = distances.filter(function (_, i) {
|
||||||
|
return i == 0 || i == n - 1 || Math.random() < sampling
|
||||||
|
});
|
||||||
|
// Re-set n to the filtered size
|
||||||
|
n = distances.length;
|
||||||
|
}
|
||||||
distances.forEach(function (distance, i) {
|
distances.forEach(function (distance, i) {
|
||||||
buf += ' <line transform="rotate(' + (i * 360 / n) + ')" y2="' + (-insetSize * (distance / max)) + '"></line>';
|
buf += ' <line transform="rotate(' + (i * 360 / n) + ')" y2="' + (-insetSize * (distance / max)) + '"></line>';
|
||||||
});
|
});
|
||||||
|
|
Loading…
Reference in New Issue