[Maps] Support categorical styling for numbers and dates#57908
[Maps] Support categorical styling for numbers and dates#57908thomasneirynck merged 41 commits intoelastic:masterfrom
Conversation
|
Pinging @elastic/kibana-gis (Team:Geo) |
|
Assigned review, wanting to get a sense if this is the right way to do it. Basically, just use the "type" field on the dynamic_style-property to toggle between categorical/qualitative.
|
|
@elasticmachine merge upstream |
|
I think this is a good approach. Just a few comments. "Quantitative" and "Qualitative" are complex words for users without a strong math/data visualization background. I think we need some help text or tooltip to explain the difference between the two. Should add number and date fields to icon style by value as well so numbers can be used for setting icon. |
fed77c5 to
26607b4
Compare
26607b4 to
42b1d88
Compare
| 'xpack.maps.styles.dynamicColorSelect.qualitativeOrQuantitativeTooltip', | ||
| { | ||
| defaultMessage: | ||
| 'Choose `quantitative` to map the value as a number to a color on a range. Choose `qualitative` to map the value as a category to a color from a palette', |
There was a problem hiding this comment.
@gchaps I could probably use some help with some good help-text here 😃 Any ideas to make this read better?
There was a problem hiding this comment.
Instead of a tooltip, how about EuiFormRow help text for the selected value?
There was a problem hiding this comment.
Do either of these work?
Choose Quantitative to map the value to a number in a color range, or Qualitative to map to a category in a color palette.
Choose Quantitative to map by number in a color range, or Qualitative to categorize by color palette.
There was a problem hiding this comment.
thx @gchaps !
to avoid some clutter in the UX (which is getting really long), we were thinking if we could avoid the help-text if the select-box uses "As number" and "As category" for the options. It'd still using your help-text in the aria-label.
There was a problem hiding this comment.
That wording is much clearer than using quantitative and qualitative.
But should it be "By number" and "By category"?
There was a problem hiding this comment.
@gchaps maybe (?) :) not super familiar with the nuances here.
It's basically to express the difference in how the value should be interpreted. Should the value be interpreted as a number on a range, then we can map it to a continuous color-range. Should the value be interpreted as a category, then we just assign a color-value.
I can make this change to 'by', but 'as' seems to fit a little better by what it's trying to express.
There was a problem hiding this comment.
Got it. 'as' is the better choice.
nreese
left a comment
There was a problem hiding this comment.
Nice improvements. Really like removing of getDateFields, getNumberFields, and getCategoricalFields
x-pack/legacy/plugins/maps/public/layers/sources/es_geo_grid_source/es_geo_grid_source.d.ts
Outdated
Show resolved
Hide resolved
x-pack/legacy/plugins/maps/public/layers/sources/es_geo_grid_source/es_geo_grid_source.test.ts
Outdated
Show resolved
Hide resolved
x-pack/legacy/plugins/maps/public/layers/sources/es_geo_grid_source/es_geo_grid_source.test.ts
Outdated
Show resolved
Hide resolved
x-pack/legacy/plugins/maps/public/layers/sources/es_term_source.test.js
Outdated
Show resolved
Hide resolved
x-pack/legacy/plugins/maps/public/layers/styles/vector/components/color/color_map_select.js
Outdated
Show resolved
Hide resolved
x-pack/legacy/plugins/maps/public/layers/styles/vector/components/vector_style_editor.js
Outdated
Show resolved
Hide resolved
x-pack/legacy/plugins/maps/public/layers/styles/vector/components/vector_style_editor.js
Outdated
Show resolved
Hide resolved
...ck/legacy/plugins/maps/public/layers/styles/vector/properties/dynamic_color_property.test.js
Outdated
Show resolved
Hide resolved
...ck/legacy/plugins/maps/public/layers/styles/vector/properties/dynamic_color_property.test.js
Outdated
Show resolved
Hide resolved
...ck/legacy/plugins/maps/public/layers/styles/vector/properties/dynamic_color_property.test.js
Show resolved
Hide resolved
x-pack/legacy/plugins/maps/public/layers/styles/vector/components/vector_style_editor.js
Outdated
Show resolved
Hide resolved
x-pack/legacy/plugins/maps/public/layers/sources/es_geo_grid_source/es_geo_grid_source.test.ts
Outdated
Show resolved
Hide resolved
x-pack/legacy/plugins/maps/public/layers/fields/top_term_percentage_field.ts
Outdated
Show resolved
Hide resolved
x-pack/legacy/plugins/maps/public/layers/styles/vector/components/color/color_map_select.js
Outdated
Show resolved
Hide resolved
...ck/legacy/plugins/maps/public/layers/styles/vector/properties/dynamic_color_property.test.js
Show resolved
Hide resolved
nreese
left a comment
There was a problem hiding this comment.
lgtm with green ci
code review, tested in chrome
💚 Build SucceededHistory
To update your PR or re-run it, just comment with: |
* master: (22 commits) Generate docs from data plugin (elastic#56955) Fixes elastic#59513 by hiding one of the symmetric edges rather than omiting it (elastic#59514) Harden creation of child processes (elastic#55697) [Alerting] replace watcher http APIs used by index threshold Alerting (elastic#59475) [Maps][docs] add more details to Quantitative data driven styling docs (elastic#59553) chore: 🤖 hide Drilldowns in master (elastic#59698) [Discover] Migrate AppState/GlobalState to new app state helpers (elastic#57175) Use HTTP request schemas to create types, use those types in the client (elastic#59340) [Maps] Support categorical styling for numbers and dates (elastic#57908) [ML] Functional API tests - bucket span estimation with custom search.max_buckets (elastic#59665) Fix slm_ui setting by changing camel case back to snake case. (elastic#59663) removes beta tag (elastic#59618) [DOCS] Removed spatial references (elastic#59595) fix outdated docs (elastic#58729) [ML] Fixes bucket span estimators loading of max_buckets setting (elastic#59639) [ML] Refactoring anomaly detector job types (elastic#59556) [Upgrade Assistant] Better handling of closed indices (elastic#58890) additional visualizations plugin cleanup before moving to NP (elastic#59318) In scripted fields, unable to switch the `Type` - getting a console error which says - Class constructor DecoratedFieldFormat cannot be invoked without 'new' (elastic#59285) [Visualize] Remove global state in visualize (elastic#58352) ...
…s/kibana into alerting/fix-flaky-instance-test * 'alerting/fix-flaky-instance-test' of github.com:gmmorris/kibana: (176 commits) Generate docs from data plugin (elastic#56955) Fixes elastic#59513 by hiding one of the symmetric edges rather than omiting it (elastic#59514) Harden creation of child processes (elastic#55697) [Alerting] replace watcher http APIs used by index threshold Alerting (elastic#59475) [Maps][docs] add more details to Quantitative data driven styling docs (elastic#59553) chore: 🤖 hide Drilldowns in master (elastic#59698) [Discover] Migrate AppState/GlobalState to new app state helpers (elastic#57175) Use HTTP request schemas to create types, use those types in the client (elastic#59340) [Maps] Support categorical styling for numbers and dates (elastic#57908) [ML] Functional API tests - bucket span estimation with custom search.max_buckets (elastic#59665) Fix slm_ui setting by changing camel case back to snake case. (elastic#59663) removes beta tag (elastic#59618) [DOCS] Removed spatial references (elastic#59595) fix outdated docs (elastic#58729) [ML] Fixes bucket span estimators loading of max_buckets setting (elastic#59639) [ML] Refactoring anomaly detector job types (elastic#59556) [Upgrade Assistant] Better handling of closed indices (elastic#58890) additional visualizations plugin cleanup before moving to NP (elastic#59318) In scripted fields, unable to switch the `Type` - getting a console error which says - Class constructor DecoratedFieldFormat cannot be invoked without 'new' (elastic#59285) [Visualize] Remove global state in visualize (elastic#58352) ...

Closes #54923
Introduces a few changes:
Adds quantitative/qualitative selector.
It adds number/date fields to the icon-selector.
It removes all the
get[Number|Date|...]Fieldmethods fromSourceandLayer, in favor of letting the vector-style-editor component filter out fields by type.