Forum Discussion
Deneb data label help
- 2 years ago
Hi Doug7983,
Apologies - I cribbed from Lutz's spec as it was already pretty-printed, so I didn't know about the formatting requirements for the bars. I've taken yours and applied the changes you asked for. Here's how it looks now:
Note that I needed to remove the redundant sort operations from the x-encoding in each bar's layer as these can be set at the top level and were messing with the sorts lower down. Because this is a layered spec, an op (aggregate) property is needed, a quirk of Vega-Lite. I'd also recommend setting shared encoding properties at as high a level as possible and letting dependent layers inherit where possible rather than repeating. Not that they don't work if you don't, but they can trip you up if one mark differs from another and they're sharing the same encoding channel. This can also help make your spec easier to read. maintain and debug 👌
Here's the amended spec:
{ "data": {"name": "dataset"}, "layer": [ { "mark": { "type": "bar", "opacity": 0.3, "tooltip": true }, "encoding": { "x": {"field": "ModelKey"}, "y": {"field": "Min of MAPEVl"}, "color": {"value": "lightgrey"} } }, { "mark": { "type": "bar", "tooltip": true }, "encoding": { "x": {"field": "ModelKey"}, "y": { "field": "Min of MAPEVl__highlight" }, "color": { "condition": { "test": "datum['Min of MAPEVl__highlight'] !== null", "value": "steelblue" }, "value": "lightgrey" } } }, { "transform": [ { "filter": "datum['Min of MAPEVl__highlight'] !== null && datum['Min of MAPEVl__highlightStatus'] !== 'neutral'" } ], "mark": { "type": "text", "baseline": "bottom", "dy": -5 }, "encoding": { "text": { "field": "Min of MAPEVl__highlight", "format": ".2f" } } } ], "encoding": { "x": { "field": "ModelKey", "type": "nominal", "sort": { "field": "Min of MAPEVl", "order": "ascending", "op": "min" }, "axis": null }, "y": { "field": "Min of MAPEVl", "type": "quantitative", "axis": {"title": "Min of MAPEVl"} } } }And thanks for using Deneb! I'm glad you find it useful 🙂
Cheers,
Daniel
Hi lbendlin,
NaN would imply an issue with the value being passed in, which could be a reference error. I would probably need to see the entire spec and dataset to troubleshoot an issue here.
The __format suffixed field is the format string according to the data model for a specific measure for a given row. Because these can be dynamic with measure-based expressions and calculation groups they can be contextual, so this allows you to manage these situations rather than at a column level. The __formatted suffix is the measure value formatted, based on the __format field value. One other thing to bear in mind is that the __formatted field value is a string rather than a number.
Further reading: Deneb documentation on formatting.
Daniel