VegaLite 条形图中第一个条形以特定颜色突出显示

问题描述 投票:0回答:1

我想用 vegalite 为表现最好的 10 名学生创建一个条形图,但一开始得分最高的学生必须具有特定的颜色,其余部分都保持不变。 我希望这与数据无关,这意味着如果数据发生变化,它不会发生变化。 有什么方法可以在我对数据进行排序时可以对数据进行索引。 如果这可能与 Vegalite 中的任何 expr 或条件有关。 这个东西可以通过参数控制吗?编辑器链接

json visualization vega-lite vega vega-lite-api
1个回答
0
投票

enter image description here

{
  "$schema": "https://vega.github.io/schema/vega-lite/v5.json",
  "description": "A simple bar chart with embedded data.",
  "data": {
    "values": [
      {"student": "A", "marks": 98},
      {"student": "B", "marks": 95},
      {"student": "C", "marks": 90},
      {"student": "D", "marks": 85},
      {"student": "E", "marks": 81},
      {"student": "F", "marks": 78},
      {"student": "G", "marks": 75},
      {"student": "H", "marks": 74},
      {"student": "I", "marks": 71}
    ]
  },
  "transform": [
    {
      "sort": [
        {"field": "marks", "order": "descending"}
      ],
      "window": [{"op": "rank", "as": "rank"}]
    }
  ],
  "mark": {
    "type": "bar",
    "color": {"expr": "datum.rank==1 ? 'gold' : 'silver'"}
  },
  "encoding": {
    "x": {"field": "student", "type": "nominal", "axis": {"labelAngle": 0}},
    "y": {"field": "marks", "type": "quantitative"}
  }
}
© www.soinside.com 2019 - 2024. All rights reserved.