plotly / plotly/plotly.js

add level-of-detail for scatter plots (and geo/sf plots)

Ouverte
#7,027 0 commentaires 2 réactions 0 personnes assignées Voir sur GitHub

Personne n'a encore pris cette issue.

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

Description

Re-opening issue #4190 (copied below) as it is still something that is often an issue in our projects. Further expanding to include sf/geo plots as it would also be useful there as well.


I've been working on some data that has a LOT of lat/long scatter points in a dense area which causes a lot of lag. about 1500-2000 points per viewport seems to work quite fluidly, but above that the click and drag/zoom tools really start to lag (click and drag is by far the worst).

There is already a "max displayed" markers parameter (which I'm putting to use), however it causes "holes" to appear until the user has zoomed in significantly and due to the way the points are organised (equal steps in lat/long) there are weird striations and patterns that occur.

It would look a lot better if I were able to have a Level-of-detail (LOD) parameter. I have a number of thoughts on how this could be achieved.

  • The simplest of which would be a parameter that takes an array of sizes at zoom levels and combined with "max displayed" could be used to grow/shrink the markers at different zooms.
  • Simplest for the user might be a parameter which when active clusters the points (much like the google marker clustering).
  • More complex could be that the user supplies an array of their own data points to display at various zoom levels and the marker size for each step.
  • Finally, the user could add a trace for each of the different zoom levels and specify at which level the trace should be visible.

Obviously some of these could be done 3rd party by tapping onto the events, however it would be more suitable to add to the core library I think.

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

L’issue ne nomme aucun fichier, test ou point d’entrée spécifique. Examinez d’abord le comportement du marqueur "max displayed" et la gestion de l’interaction de zoom, puis déterminez quelles approches LOD proposées le projet devrait prendre en charge pour les graphiques scatter et geo/sf. Le travail sera considéré comme terminé lorsqu’un design convenu, un périmètre d’implémentation et une validation des performances pour les vues de points denses seront définis.

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

Évaluation

Stack technique
javascript
Domaine
data-visualization
Type d'issue
Fonctionnalité
Difficulté
5/5
Temps estimé
Plus d'une semaine
Activité
À l'abandon
Clarté
À clarifier
Accessibilité débutants
25/100

Recevez les nouvelles issues par e-mail

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