Skip to main content
cancel
Showing results forย 
Search instead forย 
Did you mean:ย 

Calling all Data Engineers! Fabric Data Engineer (Exam DP-700) live sessions are back! Starting October 16th. Sign up.

Reply
DW868990
Contributor

Deneb - Only Show Data Labels Above a set value

Hi,

Is it possible to show data labels in Deneb for only values above a set value.

I have a visual which for the low values it clutters the x axis with all the data labels, so ideally i would only like to show data labels for larger values.

 

Thanks

 

JJ

1 ACCEPTED SOLUTION
dm-p
Honored Contributor

Hi @DW868990,

Assuming you're using Vega-Lite, you can set the opacity for your text marks based on a condition, e.g. to show for a field named Sales with values over 1000, something like this would work:

 

"mark": {
  "type": "text",
  "opacity": {
    "expr": "if(datum['Sales'] >= 1000, 1, 0)"
  }
}

 

This uses an ExprRef to set the mark's opacity to 1 (fully opaque) if the condition is satisfied.

If you prefer to only plot marks for the values that satisfy the condition rather than make them invisible, in your text mark's layer, you could also add a filter transform that satisfies the condition, e.g.:

 

{
    ...
    {
      "transform": [
        {
          "filter": "datum['Sales'] >= 1000"
        }
      ],
      "mark": {"type": "text"},
      ...
    }
    ...
}

 

As you're using expressions, the value doesn't need to be fixed, and you could use another field or other qualifier as the comparator.

Regards,

Daniel





Did I answer your question? Mark my post as a solution!

Proud to be a Super User!


On how to ask a technical question, if you really want an answer (courtesy of SQLBI)




View solution in original post

2 REPLIES 2
dm-p
Honored Contributor

Hi @DW868990,

Assuming you're using Vega-Lite, you can set the opacity for your text marks based on a condition, e.g. to show for a field named Sales with values over 1000, something like this would work:

 

"mark": {
  "type": "text",
  "opacity": {
    "expr": "if(datum['Sales'] >= 1000, 1, 0)"
  }
}

 

This uses an ExprRef to set the mark's opacity to 1 (fully opaque) if the condition is satisfied.

If you prefer to only plot marks for the values that satisfy the condition rather than make them invisible, in your text mark's layer, you could also add a filter transform that satisfies the condition, e.g.:

 

{
    ...
    {
      "transform": [
        {
          "filter": "datum['Sales'] >= 1000"
        }
      ],
      "mark": {"type": "text"},
      ...
    }
    ...
}

 

As you're using expressions, the value doesn't need to be fixed, and you could use another field or other qualifier as the comparator.

Regards,

Daniel





Did I answer your question? Mark my post as a solution!

Proud to be a Super User!


On how to ask a technical question, if you really want an answer (courtesy of SQLBI)




Anonymous
Not applicable

@dm-p - I saw this post you have used deneb. Please I need you help in reference dataset and column and measure in JSON for Deneb custom visual. I have posted a question based on this and the link is Custom visual based on seat allocation - Microsoft Power BI Community. Thanks

Helpful resources

Announcements
Users online (25)