add trace option to make some data not selectable in order to speed up slow box select
Nadie ha tomado este issue todavía.
- Lenguaje dominante
- JavaScript
- Estrellas
- 18.3k
- Forks
- 2k
- Merge medio
- 2 d 12 h
- PR fusionados (30 d)
- 28
Descripción
Hi,
When there are a lot of data traces displayed in the plot (>10,000), box select is slow and laggy when you click and drag to select data traces. I notice it is even slower in version plotly.js@2.27.1 than it is in plotly.js@2.5.1. A hypothetical solution for me would be if you added a feature to exclude some traces from being selectable, as in the example below.
Example of proposed feature:
import React from 'react';
import Plot from 'react-plotly.js';
class MyPlot extends React.Component {
render() {
return (
<Plot
data={[
{
x: [1, 2, 3, 4],
y: [10, 15, 13, 17],
type: 'scattergl',
mode: 'lines+markers',
name: 'Selectable Trace'
},
{
x: [1, 2, 3, 4],
y: [16, 5, 11, 9],
type: 'scattergl',
mode: 'lines+markers',
name: 'Non-selectable Trace',
selectable: false // <------ THIS IS THE NEW FEATURE THAT IS BEING REQUESTED
}
]}
layout={{
title: 'Selectable vs Non-selectable Traces'
}}
/>
);
}
}
I have a temporary fix to speed up selection. When I tested this naive change, box select's click and drag is no longer laggy:
// Change in file: plotly.js/src/traces/scattergl/select.js
module.exports = function select(searchInfo, selectionTester) {
return []; // Changed to always return no selected traces, because my own onSelected handler can do all the work using only the selected x, y range coordinates.
}
If you can tell me how to monkey patch this in, that would be very helpful!
Thanks!
Guía de contribución
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Línea de trabajo
Comienza con src/traces/scattergl/select.js y revisa cómo procesa actualmente la selección mediante cuadro los traces, usando el ejemplo reportado de scattergl como referencia del comportamiento. Determina cómo debería afectar a la selección una opción selectable a nivel de trace, preservando la selección de los demás traces. Se considera terminado cuando los traces no seleccionables quedan excluidos y la selección mediante cuadro responde bien con conjuntos de datos grandes.
Escrito por el modelo de indexación a partir del texto del issue.
Evaluación
- Stack tecnológico
- javascript, react
- Área
- data-visualization, frontend, performance
- Tipo de issue
- Nueva funcionalidad
- Dificultad
- 4/5
- Tiempo estimado
- 3-5 días
- Estado de actividad
- Estancado
- Claridad
- Bastante claro
- Aptitud para principiantes
- 35/100