plotly / plotly/plotly.js

add histograms on splom diagonals

Open
#6,991 4 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

feature P3
Dominant language
JavaScript
Stars
18.3k
Forks
2k
Avg merge
2d 12h
Merged PRs (30d)
28

Description

Several other implementations of splom allow for a different plot type on the diagonal - which makes sense because the diagonal subplots are always just diagonal lines of points. What we really want is a simple view of the distribution of that one dimension in each diagonal subplot. For my current purposes the best view would be a histogram, and I suspect implementing only that would be a well-received improvement, but eventually box and violin could also be nice additions.

We anticipated this feature with a comment in #2555 and with a comment in the attributes for splom:

https://github.com/plotly/plotly.js/blob/f0fef6fe8c1c37786dcc9789bb60576073d2d0b7/src/traces/splom/attributes.js#L143-L158

That comment I think is right, trace.diagonal.type sets the trace type for all of the diagonal subplots, then we add more attributes into trace.diagonal that mirror the attributes available to histogram (and the other trace types if we add those). For histograms, trace.diagonal.marker.color should be inherited from trace.marker.color (and maybe similar with marker.line.width and marker.line.width?)

In addition, each dimension should be able to override everything about its own diagonal subplot, so trace.dimensions[i].diagonal should accept all the same options as trace.diagonal.

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start with the referenced comment and attributes in src/traces/splom/attributes.js, then trace how splom diagonal subplots are configured. Define histogram support through trace.diagonal, including inherited marker color, and per-dimension overrides through trace.dimensions[i].diagonal. Done means diagonal subplots can show histograms with those configuration paths working.

Written by the indexing model from the issue text.

Assessment

Tech stack
javascript
Domain
data-visualization
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.