plotly / plotly/plotly.js

Extend multicategory axes to more than 2 levels

Open
#2,175 14 comments 6 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

This is a request to add nested categorical axes. These are often used in "variability charts", examples of which can be seen here.

There's a few ways this could be implemented in practice. Rather than passing an array of values for y the user could pass an object like:

{
  "popcorn": ["gourmet", "gourmet", "plain", ...]
  "batch": ["large", "small", "large", ...]
  ...
}

or simply pass a category name / number (1 or "gourmet-large-little") and pass the nesting information for the axis in the layout section.

(I was surprised not to find an open issue for this -- it's possible that there is one but I didn't search using the right terms).

Edit: There is some limited support for this as shown here but it involves hacking the axis together by hand and would be difficult to use in an automated manner.

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 by reviewing the existing limited subcategory-axis support described in the linked Plotly axes documentation and the variability-chart examples. Clarify whether the API should accept nested category arrays or layout-level nesting metadata, then trace the current multicategory axis behavior. Done means nested categorical axes work automatically without manual axis construction.

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
Needs clarification
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.