plotly / plotly/plotly.js

[BUG]: `histogram2dcontour` uses wrong fill colors for negative values

Ouverte
#8,005 0 commentaires 0 réactions 0 personnes assignées Voir sur GitHub

Personne n'a encore pris cette issue.

bug P2 size: 1
Langage dominant
JavaScript
Étoiles
18.3k
Forks
2k
Merge moyen
2 j 12 h
PR mergées (30 j)
28

Description

First reported in plotly.py: https://github.com/plotly/plotly.py/issues/3799

histogram2dcontour traces use incorrect fill colors when bin values are negative.

Negative bin values can occur when histfunc is set to 'avg', 'min', or 'max', and the input z array contains negative values.

When some bin values are negative, all negative bin values are filled with the same color as 0 on the colorscale, while the outermost fill level is filled with the same color as the lowest number on the colorscale.

Example

Codepen reproduction: https://codepen.io/emilykl-code/pen/PwpPjMb

Code:

Show code
const x = [1, 2, 3, 4, 1, 2, 3, 4];
const y = [1, 1, 1, 1, 2, 2, 2, 2];
// The bug is triggered when histfunc is 'avg', 'min', or 'max',
// and some z-values are negative such that some resulting bin values
// end up negative
// This example uses all-negative z values to show the most extreme
// case, but not all z-values need to be negative to trigger the bug
const z = [-10, -50, -100, -150, -10, -50, -100, -150];

Plotly.newPlot('div1', [{
  type: 'histogram2dcontour',
  x: x,
  y: y,
  z: z,
  histfunc: 'avg',  // or 'min' or 'max'
  contours: {
    coloring: 'fill',
    showlabels: true,
  },
}],
 {
   title: {
     text: 'histogram2d contour plot: wrong fill colors!',
     subtitle: {
       text: 'Compare contour labels on plot to colorscale'
     }
 }
});

Screenshot:
Image

Expected behavior

Contour fills should match fill colors indicated by colorscale

Guide de contribution

Ouvrir le guide de contribution

Par où commencer

  1. Lisez l'issue en entier, puis le guide de contribution du projet.
  2. Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
  3. Forkez le dépôt et travaillez sur une branche.
  4. Ouvrez une pull request qui référence le numéro de l'issue.

Piste de recherche

Commencez par exécuter la reproduction CodePen fournie pour un trace histogram2dcontour utilisant des valeurs z négatives et avec histfunc défini sur avg, min ou max. Suivez le chemin de rendu de histogram2dcontour et vérifiez que les remplissages de contour des bins négatifs correspondent à leurs labels et à la colorscale pour les trois fonctions.

Rédigé par le modèle d'indexation à partir du texte de l'issue.

Évaluation

Stack technique
javascript
Domaine
data-visualization
Type d'issue
Bug
Difficulté
3/5
Temps estimé
1-2 jours
Activité
Active
Clarté
Plutôt claire
Accessibilité débutants
65/100

Recevez les nouvelles issues par e-mail

Un résumé court des issues GitHub adaptées aux débutants.