d3.nice(start, stop, 1) returns [-1e308, 1e308] when the interval contains zero, so d3.bin gives NaN bin bounds
Les mainteneurs répondent en général sous 1 jour
@awais-ur-rehman y travaille déjà.
Depuis le 7/11/2026.
Évaluation
- Difficulté
- 2/5
- Temps estimé
- 1-3 heures
- Accessibilité débutants
- 78/100
- Type d'issue
- Bug
- Clarté
- Clairement spécifiée
- Activité
- Active
- Stack technique
- javascript, node.js
- Domaine
- data
Piste de recherche
Commence par src/nice.js, où l’issue identifie la boucle qui élargit l’intervalle de façon répétée, et suis l’évolution du pas des graduations lorsque le nombre demandé est 1 et que l’intervalle traverse zéro. Reproduis les exemples avec node et examine les tests existants pour nice et bin. Le travail est terminé lorsque d3.nice renvoie un intervalle fini couvrant l’entrée et que les bornes des bins signalées sont finies.
Rédigé par le modèle d'indexation à partir du texte de l'issue.
Description
With count 1 and start < 0 < stop, d3.nice keeps widening the interval until the step overflows. d3.bin hits this through thresholds(1) or when thresholdScott / thresholdFreedmanDiaconis return 1, and the bins get NaN bounds.
import * as d3 from "d3-array";
console.log(d3.nice(-1, 5, 1));
console.log(d3.nice(-0.1, 0.2, 1));
console.log(d3.thresholdScott([-1, 5], -1, 5));
console.log(d3.bin().thresholds(d3.thresholdScott)([-1, 5]));
console.log(d3.bin().thresholds(1)([-1.4, 5.6]));
node t.mjs
Actual:
[ -1e+308, 1e+308 ]
[ -1e+308, 1e+308 ]
1
[ [ -1, 5, x0: -1e+308, x1: NaN ], [ x0: NaN, x1: 1e+308 ] ]
[ [ -1.4, 5.6, x0: -1e+308, x1: NaN ], [ x0: NaN, x1: 1e+308 ] ]
Expected: a finite nice interval covering the input (for example [-10, 10] for d3.nice(-1, 5, 1)), and bins with finite x0 and x1.
Tested with d3-array 3.2.5 from npm and main at 24c015e, Node.js 26.13.0.
The loop in src/nice.js stops only when tickIncrement returns the previous step (or a non-finite one). With count 1 across zero, rounding both ends outward always gives an interval of at least two steps, so every iteration picks the next larger step ([-1, 5] to [-5, 5] to [-10, 10] ...). Stopping when the step grows past the previous one, or capping the iterations as d3-scale's linear.nice does, would end it.
Credit: https://ucsbplse.github.io/
- Langage dominant
- JavaScript
- Étoiles
- 465
- Forks
- 193
- Merge moyen
- 5 h 46 min
- PR mergées (30 j)
- 1
Préparer son environnement
Ce projet ne fournit ni conteneur de développement, ni Dockerfile, ni guide de contribution : l'installation est à votre charge. Commencez par son README, et consultez notre guide de la première contribution pour les étapes générales.
Par où commencer
- Lisez l'issue en entier, puis le guide de contribution du projet.
- Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
- Forkez le dépôt et travaillez sur une branche.
- Ouvrez une pull request qui référence le numéro de l'issue.
Autres issues de d3/d3-array
-
regression: in d3.bin, values next to a threshold go into the wrong binPeut-être pris @Fil l’a pris il y a 2 jours. Ouverte
d3/d3-array#295 · 1 réaction · 1 personne assignée ·
Les mainteneurs répondent en général sous 1 jour
-
regression: d3.bin's last bin is twice as wide when the maximum is a thresholdPeut-être pris @Fil l’a pris il y a 2 jours. Ouverte
d3/d3-array#294 · 1 personne assignée ·
Les mainteneurs répondent en général sous 1 jour
-
Difficulté 3/5 1-2 jours Accessibilité débutants 35/100
d3/d3-array#280 · 2 commentaires ·
Les mainteneurs répondent en général sous 1 jour
-
groupSort should use ascendingDefined instead of ascendingPeut-être pris @cpruijsen l’a pris il y a 58 jours. Ouverte
Difficulté 1/5 Moins d'une heure Accessibilité débutants 10/100
Les mainteneurs répondent en général sous 1 jour
-
Incorrect results for binary search on large arrays due to miscomputation of midpointPeut-être pris @maximilliangrand l’a pris il y a 88 jours. Ouverte
Difficulté 2/5 1-3 heures Accessibilité débutants 25/100
d3/d3-array#261 · 11 commentaires · 1 réaction ·
Les mainteneurs répondent en général sous 1 jour
Toutes les issues de d3/d3-array
Issues similaires
-
Difficulté 2/5 1-3 heures Accessibilité débutants 78/100
mega-yfue/ha-eufy-sdk-bridge#198 ·
Les mainteneurs répondent en général sous 1 jour
-
enhancement
Difficulté 2/5 1-3 heures Accessibilité débutants 78/100
blamechris/chroxy#9108 ·
Les mainteneurs répondent en général sous 1 jour
-
Difficulté 2/5 1-3 heures Accessibilité débutants 78/100
-
Content:WebExt needs triage
Difficulté 1/5 1-3 heures Accessibilité débutants 82/100
Les mainteneurs répondent en général sous 1 jour
-
Difficulté 2/5 1-3 heures Accessibilité débutants 77/100
liberation-data/drivine#733 · 1 commentaire ·
Les mainteneurs répondent en général sous 1 jour