Box plots with log-scaled whiskers
Nobody has claimed this yet.
- Dominant language
- JavaScript
- Stars
- 18.3k
- Forks
- 2k
- Avg merge
- 2d 12h
- Merged PRs (30d)
- 28
Description
The standard formula we use for the length of box plot whiskers is 1.5 * IQR (interquartile range, ie the third quartile minus the first quartile). This is based on comparing your distribution to a normal distribution, where any data beyond those whiskers is considered an outlier. However, if you're displaying your data on a log scale (and sometimes even if you're not) a log-normal distribution is likely more appropriate, in which case the whisker locations should be calculated based on the IQR in log units. This brings both fences up, in particular preventing the lower fence from ever going negative ie an infinitely long whisker on a log scale.
I'd propose a new attribute for box traces, something like distribution: 'normal' | 'log-normal' | 'auto' where 'auto' uses 'log-normal' when displayed on a log axis, otherwise 'normal'. I'll be happy to submit a PR to add this functionality.
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start by locating the box-trace whisker calculation and the handling of log-scaled axes in this JavaScript repository. Clarify the proposed distribution API and expected normal, log-normal, and auto behavior with maintainers. Done means box plots use appropriate whisker fences on log axes without negative lower fences, with tests covering the behavior.
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