add trace option to make some data not selectable in order to speed up slow box select
まだ誰も着手していません。
- 主要言語
- JavaScript
- スター
- 18.3k
- フォーク
- 2k
- 平均マージ
- 2日 12時間
- マージ済み PR(30日)
- 28
説明
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!
コントリビューションガイド
はじめの一歩
- issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
- 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
- リポジトリをフォークし、ブランチを切って変更します。
- issue 番号を参照したプルリクエストを送ります。
調査の方向性
src/traces/scattergl/select.js から始め、報告されている scattergl の例を動作の基準として、現在ボックス選択が trace をどのように処理しているかを確認します。他の trace の選択を維持しながら、trace レベルの selectable オプションが選択にどのような影響を与えるべきかを判断します。完了条件は、選択不可の trace が除外され、大規模なデータセットでもボックス選択が応答性を維持することです。
索引モデルが issue の本文から書いたものです。
評価
- 技術スタック
- javascript, react
- 領域
- data-visualization, frontend, performance
- issue の種類
- 機能追加
- 難易度
- 4/5
- 見積もり時間
- 3〜5日
- 活発さ
- 停滞
- 明瞭さ
- おおむね明確
- 初心者へのやさしさ
- 35/100