Splom open items
未关闭
还没有人认领这个 Issue。
feature
P3
- 主要语言
- JavaScript
- 星标
- 18.3k
- 派生
- 2k
- 平均合并
- 2 天 12 小时
- 30 天内合并 PR
- 28
描述
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
贡献指南
从这里开始
- 先读完整个 Issue,再读项目的贡献指南。
- 在 Issue 下留言说明你要接手 —— 这能避免两个人做同样的事。
- Fork 仓库,在一个分支上完成修改。
- 提交 Pull Request,并在描述里引用这个 Issue 编号。
调研方向
首先阅读 issue #2372 以及 PR #2505 和 #2527,然后将未勾选的 checklist 项与已在后续 PR 中修复的项分开。没有指定源文件或测试;贡献者需要确定一个剩余项,找出其入口点和测试,并在开始之前定义完成标准。
由索引模型根据 Issue 内容生成。
评估
- 技术栈
- javascript
- 领域
- data-visualization, performance
- Issue 类型
- 功能
- 难度
- 5/5
- 预计耗时
- 一周以上
- 活跃度
- 停滞
- 描述清晰度
- 需要澄清
- 新手友好度
- 15/100