-
Notifications
You must be signed in to change notification settings - Fork 120
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
feat: mosaic plot #1113
feat: mosaic plot #1113
Conversation
jenkins test this please |
Codecov Report
@@ Coverage Diff @@
## master #1113 +/- ##
==========================================
+ Coverage 72.05% 72.46% +0.40%
==========================================
Files 381 397 +16
Lines 11929 12257 +328
Branches 2603 2660 +57
==========================================
+ Hits 8596 8882 +286
- Misses 3308 3342 +34
- Partials 25 33 +8
Flags with carried forward coverage won't be shown. Click here to find out more.
Continue to review full report at Codecov.
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Absolutely great!
Is amazing to see the flexibility of this chart implementation.
Tested locally and works great
# [28.1.0](v28.0.1...v28.1.0) (2021-04-13) ### Bug Fixes * **legend:** sizing for short labels with scrollbar ([#1115](#1115)) ([6e1f223](6e1f223)) * **xy:** negative bar highlight and click ([#1109](#1109)) ([ec17cb2](ec17cb2)), closes [#1100](#1100) ### Features * **a11y:** improve chart figure ([#1104](#1104)) ([815cf39](815cf39)) * **partition:** order slices and sectors ([#1112](#1112)) ([74df29b](74df29b)) * **partitions:** small multipies events pass on smAccessorValue ([#1106](#1106)) ([a3234fe](a3234fe)) * **xy:** optionally rounds the domain to nice values ([#1087](#1087)) ([f644cc4](f644cc4)) * **xy:** specify pixel and ratio width for bars ([#1114](#1114)) ([58de413](58de413)) * mosaic ([#1113](#1113)) ([64bdd88](64bdd88))
🎉 This PR is included in version 28.1.0 🎉 The release is available on: Your semantic-release bot 📦🚀 |
# [28.1.0](elastic/elastic-charts@v28.0.1...v28.1.0) (2021-04-13) ### Bug Fixes * **legend:** sizing for short labels with scrollbar ([opensearch-project#1115](elastic/elastic-charts#1115)) ([ebf2552](elastic/elastic-charts@ebf2552)) * **xy:** negative bar highlight and click ([opensearch-project#1109](elastic/elastic-charts#1109)) ([065673c](elastic/elastic-charts@065673c)), closes [opensearch-project#1100](elastic/elastic-charts#1100) ### Features * **a11y:** improve chart figure ([opensearch-project#1104](elastic/elastic-charts#1104)) ([373ea72](elastic/elastic-charts@373ea72)) * **partition:** order slices and sectors ([opensearch-project#1112](elastic/elastic-charts#1112)) ([72c0d1b](elastic/elastic-charts@72c0d1b)) * **partitions:** small multipies events pass on smAccessorValue ([opensearch-project#1106](elastic/elastic-charts#1106)) ([0e1f7de](elastic/elastic-charts@0e1f7de)) * **xy:** optionally rounds the domain to nice values ([opensearch-project#1087](elastic/elastic-charts#1087)) ([9c2eefc](elastic/elastic-charts@9c2eefc)) * **xy:** specify pixel and ratio width for bars ([opensearch-project#1114](elastic/elastic-charts#1114)) ([6294d5f](elastic/elastic-charts@6294d5f)) * mosaic ([opensearch-project#1113](elastic/elastic-charts#1113)) ([15c0d78](elastic/elastic-charts@15c0d78))
Summary
To support data visualization best practices, we've anticipated alternatives to pie/donut/sunburst and have been implementing them as opportunity arises: treemap, icicle, flame.
Merging #1112 ensured that things are in place for mosaic plot, a.k.a. Marimekko or Mekko chart, which is often better than the analogous two-layer pie (sunburst) and sometimes better than the two-layer treemap.
Mosaic plots are often preferred over full, two-layer sunburst such as this. If the secondary partitioning is shared, eg. here, browsers, then sideways comparison is way more feasible than in the case of sunburst or treemap. In this case, the browser order should be shared too.
Mosaic plot is Lens friendly: it works with full-depth partitioning (Lens can't do heterogeneous depth such as general sunburst or icicle/flame). Mosaic plots are often a visual alternative to crosstabs.
Mosaic plot is activated by specifying
partitionLayout: PartitionLayout.mosaic
in the partition chartconfig
, as usual.Mosaic plots are great for 3+1 use case, as often, data is multidimensional and two dimensions can be simultaneously interesting.
"Other" slices can be also used, and placed on the top or bottom, irrespective of size, if we want to avoid too small areas:
Mosaic plots are a tool of choice in machine learning, statistics and analytics, as they're great for visualizing contingency tables aka. cross tabulation and they're sometimes good for showing a relationship between two variables:
(Article by Dr. Robert Grünwald)
Mosaic plots are like
There's room for future PRs, eg.
viewModel.ts
etc. slightly more verbose and branching (ternaries) than idealAlternating among partition layouts, from the follow-up #1120:
Checklist
Delete any items that are not applicable to this PR.
src/index.ts
(and stories only import from../src
except for test data & storybook)