Deneb & PowerBI:风险矩阵项目

Deneb & PowerBI: Risk matrix Project

我目前正在 PowerBI 中处理风险矩阵,我想用 Deneb 创建它。目标是允许交叉过滤的 3x3 矩阵。 David 已经提供了关于 Vega lite 代码的创建支持,但是,一些 PowerBI 特定问题仍然存在。 我目前的进度可以在这里看到:PowerBi File.

现在我面临以下挑战,感谢您帮助我克服这些挑战:

一如既往,我感谢任何解决方案、提示或想法。 :)

好的,请按照以下步骤操作,以获得如下所示的完全有效且交互式的风险矩阵。

  1. 创建一个伤害维度 table 如下

  1. 创建曝光维度 table 如下:

  1. 创建两个与您的事实 table 的关系,如下所示。

  1. 创建一个度量如下

    风险计数 = COUNTROWS(Sheet1) +0

  2. 创建一个新的 Deneb 视觉对象,添加两个维度和度量(确保不要聚合)

  1. 将此代码放入 Deneb
{
  "$schema": "https://vega.github.io/schema/vega-lite/v5.json",
  "data": {"name": "dataset"},
  "width": 500,
  "height": 500,
  "encoding": {
    "y": {
      "field": "Exposure",
      "type": "ordinal",
      "sort": ["high", "medium", "low"]
    },
    "x": {
      "field": "Damage",
      "type": "ordinal",
      "sort": ["low", "medium", "high"],
      "axis": {"labelAngle": 0}
    }
  },
  "layer": [
    {
      "encoding": {
        "opacity": {
          "condition": {
            "test": {"field": "__selected__", "equal": "off"},
            "value": 0.3
          }
        }
      },
      "mark": {
        "type": "rect",
        "color": {
          "expr": "(datum['Exposure'] == 'high' & datum['Damage'] == 'high') || (datum['Exposure'] == 'high' & datum['Damage'] == 'medium') || (datum['Exposure'] == 'medium' & datum['Damage'] == 'high') ? 'red' : (datum['Exposure'] == 'medium' & datum['Damage'] == 'medium') || (datum['Exposure'] == 'high' & datum['Damage'] == 'low') || (datum['Exposure'] == 'low' & datum['Damage'] == 'high') ? 'orange': 'green'"
        }
      }
    },
    {
      "mark": {
        "type": "text",
        "fontSize": 16,
        "fontWeight": "bold",
        "color": "white"
      },
      "encoding": {"text": {"field": "Risk Count", "type": "quantitative"}}
    }
  ],
  "config": {"axis": {"grid": true, "tickBand": "extent"}}
}