plotly / plotly.js

Open-source JavaScript charting library behind Plotly and Dash
https://plotly.com/javascript/
MIT License
17.04k stars 1.87k forks source link

Splom open items #2555

Open etpinard opened 6 years ago

etpinard commented 6 years ago

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

Things we could do, but would require some thought

Related issues that would benefit splom performance:

etpinard commented 6 years ago

Pasting benchmarks from https://github.com/plotly/plotly.js/pull/2505#issuecomment-381665092 out for future reference:


Here are some first-render benchmarks with showupperhalf: false and diagonal.visible: false:

# of dimensions # of values per dimension regl-line2d grid lines? time [ms]
10 20k no 400-500
20 5k yes 600-700
30 2k yes 900-1000
40 1k yes 1300-1400
50 800 yes 2000-2300

computed using:

var Nvars = /* fill this in */
var Nrows = /* fill this in */
var dims = []

for(var i = 0; i < Nvars; i++) {
  dims.push({values: []})

  for(var j = 0; j < Nrows; j++) {
     dims[i].values.push(Math.random())
  }
}

Plotly.purge(gd);

console.time('splom')
Plotly.newPlot(gd, [{
  type: 'splom',
  dimensions: dims,
  showupperhalf: false,
  diagonal: {visible: false},
}], {width: 2000, height: 2000})
console.timeEnd('splom')
etpinard commented 6 years ago

From @alexcjohnson 's https://github.com/plotly/plotly.js/pull/3057#discussion_r221411382, about speeding up lsInner:

overlappingDomain might itself be a heavy lift for a large number of subplots (am I reading this right that for NxN subplots this is O(N^4), ie O(N^2) tests per subplot???), all for the fairly unusual case of inset plots, or otherwise partially occluding subplots. Perhaps it would be worthwhile doing a faster check for whether overlappingDomain is even necessary to call, by looping over all x axes to see if any of their domains overlap, then the same over all y axes? That would only be O(N^2) to possibly (usually!) avoid O(N^4).

sebastian-raubach commented 4 years ago

Hi, I was wondering if there has been any progress on this issue since late 2018? Especially on the "Add sub-trace on the diagonal" functionality. Thanks

AniWar commented 4 years ago

Hello , any updates for diagonal sub trace ? Would love to have this feature .

InCogNiTo124 commented 2 years ago

Bump for histograms on the diagonals