plotly / plotly/plotly.js

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

Aperta
#7,027 0 commenti 2 reazioni 0 assegnatari Vedi su GitHub

Nessuno ha ancora preso questa issue.

feature P2
Lingua principale
JavaScript
Stelle
18.3k
Fork
2k
Merge medio
2g 12h
PR unite (30g)
28

Descrizione

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.

Guida per i contributori

Apri la guida per i contributori

Come iniziare

  1. Leggi tutta la issue e poi la guida ai contributi del progetto.
  2. Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
  3. Fai un fork del repository e lavora su un branch.
  4. Apri una pull request che faccia riferimento al numero della issue.

Direzione di ricerca

La issue non indica file, test o uno specifico punto di ingresso. Esamina innanzitutto il comportamento dell’indicatore "max displayed" e la gestione dell’interazione di zoom, quindi determina quali degli approcci LOD proposti il progetto dovrebbe supportare per i grafici scatter e geo/sf. Il lavoro sarà considerato completato quando saranno definiti un design concordato, l’ambito dell’implementazione e una validazione delle prestazioni per le viste dense di punti.

Scritto dal modello di indicizzazione a partire dal testo della issue.

Valutazione

Stack tecnologico
javascript
Ambito
data-visualization
Tipo di issue
Funzionalità
Difficoltà
5/5
Tempo stimato
Più di una settimana
Stato di attività
Ferma
Chiarezza
Da chiarire
Idoneità per principianti
25/100

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.