首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Deneb (Power BI)中的高亮栏- fillOpacity

Deneb (Power BI)中的高亮栏- fillOpacity
EN

Stack Overflow用户
提问于 2022-06-16 18:45:25
回答 1查看 171关注 0票数 1

我有左边的图表,下面提供的代码,并希望在右边得到图表。右边的图表突出显示了与所选层对应的条形图;所选的图层来自切割机。(右边的图表显示了第1层;但是,用户可能更喜欢另一层。)我觉得这可以用fillOpacity来完成。我怎么才能得到高亮显示?

代码语言:javascript
复制
{
  "data": {
    "values": [
      {"name": "A", "group": "High", "tier": "Tier 3"},
      {"name": "B", "group": "Med", "tier": "Tier 1"},
      {"name": "C", "group": "High", "tier": "Tier 1"},
      {"name": "D", "group": "High", "tier": "Tier 2"},
      {"name": "E", "group": "Low", "tier": "Tier 3"},
      {"name": "F", "group": "Low", "tier": "Tier 1"}
    ]
  },
  "transform": [
    {
      "aggregate": [
        {
          "field": "name",
          "op": "count",
          "as": "numProj"
        }
      ],
      "groupby": [
        "name",
        "group"
      ]
    },
    {
      "stack": "numProj",
      "groupby": ["group"],
      "sort": [
        {
          "field": "name",
          "order": "descending"
        }
      ],
      "as": "barTop"
    }
  ],
  "layer": [
    {
      "mark": {
        "type": "bar",
        "stroke": "black",
        "strokeWidth": 1,
        "tooltip": true
      },
      "encoding": {
        "y": {
          "field": "numProj",
          "type": "quantitative",
          "axis": {
            "title": "Number of Projects",
            "tickMinStep": 1
          }
        },
        "fill": {
          "field": "group",
          "type": "nominal",
          "scale": {
            "domain": [
              "Low",
              "Med",
              "High"
            ],
            "range": [
              "#e15759",
              "#ffff00",
              "#59a14f"
            ]
          },
          "legend": null
        }
      }
    },
    {
      "mark": {
        "type": "text",
        "color": "black",
        "dy": -10
      },
      "encoding": {
        "y": {
          "field": "barTop",
          "type": "quantitative"
        },
        "text": {
          "field": "name"
        }
      }
    }
  ],
  "encoding": {
    "x": {
      "field": "group",
      "type": "nominal",
      "axis": {
      "title": null,
        "labelAngle": 0
      }
    }
  }
}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-06-17 08:42:08

Deneb中的突出显示非常重要,可以阅读这里。话虽如此,我还是有一个很好的例子。

代码

代码语言:javascript
复制
{
  "data": {"name": "dataset"},
 
  "layer": [
    {
      "mark": {
        "type": "bar",
        "stroke": "black",
        "strokeWidth": 1,
        "tooltip": true,
        "opacity": 0.3
      },
      "encoding": {
        "y": {
          "field": "test",
          "type": "quantitative",
          "axis": {
            "title": "Number of Projects",
            "tickMinStep": 1
          }
        },
        "fill": {
          "field": "group",
          "type": "nominal",
          "scale": {
            "domain": [
              "Low",
              "Med",
              "High"
            ],
            "range": [
              "#e15759",
              "#ffff00",
              "#59a14f"
            ]
          },
          "legend": null
        }
        
      }
    },
    {
      "mark": {
        "type": "bar",
        "stroke": "black",
        "strokeWidth": 1,
        "tooltip": true,
        "opacity": 1
      },
      "encoding": {
        "y": {
          "field": "test__highlight",
          "type": "quantitative",
          "axis": {
            "title": "Number of Projects",
            "tickMinStep": 1
          }
        },
        "fill": {
          "field": "group",
          "type": "nominal",
          "scale": {
            "domain": [
              "Low",
              "Med",
              "High"
            ],
            "range": [
              "#e15759",
              "#ffff00",
              "#59a14f"
            ]
          },
          "legend": null
        }
        
      }
    },
    
    
    {
      "mark": {
        "type": "text",
        "color": "black",
        "dy": 70
      },
      "encoding": {
        "y": {
          "field": "test__highlight",
          "stack":  true,
          "type": "quantitative"
        },
        "text": {
          "field": "name"
        }
      }
    }
  ],
  "encoding": {
    "x": {
      "field": "group",
      "type": "nominal",
      "axis": {
      "title": null,
        "labelAngle": 0
      }
    }
  }
}

要记住的事情。

  1. 您需要一个度量(Deneb docs状态高亮显示在没有度量的情况下无法工作)。名为test的度量是简单的test =COUNT(‘Table’named )
  2. 除非切片器作为切片筛选器而不是高亮显示,否则不能高亮显示。
  3. 你不能高亮显示堆叠的位置。由于数据是如何传递的,突出显示的堆栈自然会下降到底部。也许有办法解决这个问题,但它将涉及进一步的调查,这可能是不值得的。

编辑1

突出显示位置。

代码语言:javascript
复制
{
  "data": {"name": "dataset"},
 
  "layer": [
    {
      "mark": {
        "type": "bar",
        "stroke": "black",
        "strokeWidth": 1,
        "tooltip": true,
        "opacity": 0.3
      },
      "encoding": {
        "y": {
          "field": "test",
          "type": "quantitative",
          "axis": {
            "title": "Number of Projects",
            "tickMinStep": 1
          }
        },
        "fill": {
          "field": "group",
          "type": "nominal",
          "scale": {
            "domain": [
              "Low",
              "Med",
              "High"
            ],
            "range": [
              "#e15759",
              "#ffff00",
              "#59a14f"
            ]
          },
          "legend": null
        }
        
      }
    },
    {
      "mark": {
        "type": "bar",
        "stroke": "black",
        "strokeWidth": 1,
        "tooltip": true
        
        
        
        
      },
      "encoding": {
        "y": {
          "field": "test",
          "type": "quantitative",
          "axis": {
            "title": "Number of Projects",
            "tickMinStep": 1
          }
        },
        
        "opacity": {
          "condition": {
            "test":  "datum['test__highlight']!=null"
            ,
            "value": 1
          },
          "value": 0
        },
        
        
        
        
        "fill": {
          "field": "group",
          "type": "nominal",
          "scale": {
            "domain": [
              "Low",
              "Med",
              "High"
            ],
            "range": [
              "#e15759",
              "#ffff00",
              "#59a14f"
            ]
          },
          "legend": null
        }
        
      }
    },
    
    
    {
      "mark": {
        "type": "text",
        "color": "black",
        "dy": 70
      },
      "encoding": {
        "y": {
          "field": "test",
          "stack":  true,
          "type": "quantitative"
        },
        "text": {
          "field": "name"
        }
      }
    }
  ],
  "encoding": {
    "x": {
      "field": "group",
      "type": "nominal",
      "axis": {
      "title": null,
        "labelAngle": 0
      }
    }
  }
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/72650567

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档