Splom open items
Offen
Dieses Issue hat noch niemand übernommen.
feature
P3
- Vorherrschende Sprache
- JavaScript
- Sterne
- 18.3k
- Forks
- 2k
- Ø Merge
- 2 T. 12 Std.
- Gemergte PRs (30 T.)
- 28
Beschreibung
Follow-up from https://github.com/plotly/plotly.js/issues/2372, https://github.com/plotly/plotly.js/pull/2505 and https://github.com/plotly/plotly.js/pull/2527
Things that were left out
- Splom traces placed on overlaid axes are broken, see https://github.com/plotly/plotly.js/pull/2505#discussion_r181237788
- Multi-selection across subplot is disallowed. To do so, we would need to share
selectedpointsinfo across multiple splom-generated subplots, see https://github.com/plotly/plotly.js/pull/2505#issuecomment-380855752 - Relayout'ing grid style on
hasOnlyLargeSploms: truewithscattergltrace(s) fails to redraw scattergl trace(s), see https://github.com/plotly/plotly.js/issues/2562 FIXED in https://github.com/plotly/plotly.js/pull/3067
Things we could do, but would require some thought
- Add sub-trace on the diagonal (e.g. with
diagonal.mode: 'scattergl' || 'histogram' || 'box' || 'violin', see https://github.com/plotly/plotly.js/pull/2505#discussion_r177823962 - Add attribute in
dimensionsthat could default the splom generated axes' style (e.g.dimensions[i].showgrid: falsewould remove grid lines from all axes corresponding todimensions[i]). Edit: PR https://github.com/plotly/plotly.js/pull/2899 addeddimensions[i].axis.type, it would be easy to add more attribute under that container. - Make one single cartesian
<g .draglayer>covering the whole plot area instead of multiple (12 I think) per subplot. This would speed up initial rendering (especially for splom, but also for all graphs with many subplots), make cross-subplot selections a little easier to manage, see https://github.com/plotly/plotly.js/pull/2505#discussion_r181237581 - optimize
regl-line2dfor grid data - implement matching axes https://github.com/plotly/plotly.js/issues/1549
- Remove remaining O(n^2) SVG items. In addition to
g.draglayermentioned above, there are two categories I can see:- Subplot backgrounds
rect.bg- These could be omitted entirely whenplot_bgcolormatchespaper_bgcolor(and both are fully opaque - which is true by default), otherwise perhaps we could move them into the WebGL canvas though @etpinard points out this may impact pan/zoom performance. UPDATE: optimized when plot and paper bgcolor match in https://github.com/plotly/plotly.js/pull/3057, possible future improvements in https://github.com/plotly/plotly.js/pull/3057#discussion_r222030211 - Subplot groups
.subplot.x<N>y<M>- normally only the ones with tick labels and titles have any visible content in them, but currently they all have some empty groups, an associatedclipPath#clip<UID>x<N>y<M>plot, and a few<path d="M0,0">elements, we should be able to avoid even creating the unused ones.
- Subplot backgrounds
Related issues that would benefit splom performance:
- faster axis autorange relayout: https://github.com/plotly/plotly.js/issues/2546
- per-axis 'axrange' relayout: https://github.com/plotly/plotly.js/issues/2547
- stash pts selections for pan: https://github.com/plotly/plotly.js/issues/2548
- speed up cartesian axis defaults: https://github.com/plotly/plotly.js/issues/2549
- replacing getBoundingClientRect calls in
Axes.doTickshttps://github.com/plotly/plotly.js/issues/1988 - done in: https://github.com/plotly/plotly.js/pull/4165
Beitragsleitfaden
Erste Schritte
- Lies das ganze Issue und danach den Beitragsleitfaden des Projekts.
- Schreib ins Issue, dass du es übernimmst — das erspart doppelte Arbeit.
- Forke das Repository und arbeite in einem Branch.
- Öffne einen Pull Request, der die Issue-Nummer nennt.
Rechercherichtung
Beginnen Sie mit dem Lesen von Issue #2372 und den PRs #2505 und #2527 und trennen Sie anschließend die nicht abgehakten Checklisteneinträge von denen, die durch spätere PRs bereits behoben wurden. Es wird keine Quelldatei oder kein Test genannt; ein Beitragender müsste sich auf einen verbleibenden Eintrag einigen, dessen Einstiegspunkt und Tests identifizieren und vor dem Beginn die Abschlusskriterien festlegen.
Vom Indexierungsmodell aus dem Issue-Text verfasst.
Bewertung
- Tech-Stack
- javascript
- Bereich
- data-visualization, performance
- Issue-Typ
- Feature
- Schwierigkeit
- 5/5
- Geschätzter Aufwand
- Über eine Woche
- Aktivitätsstatus
- Veraltet
- Klarheit
- Muss geklärt werden
- Anfängerfreundlichkeit
- 15/100