Vega lite 热图与多行计算字段不正确

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

我绘制了一个简单的热图(最小示例在 Vega 编辑器中打开图表),最初看起来是正确的。

许多标签非常长,因此我添加了变换

{"calculate": "split(datum.description, ' ')", "as": "description2"}
将标签拆分为空格字符上的新行(
description
是映射到
x
轴的字段)。

但是现在的情节不正确。在链接的规范中,如果将

x
的编码从
"field": "description2"
更改为
"field": "description"
,整个绘图都会发生变化。许多具有
One
描述的项目在使用字段
description2
(计算字段)时无法正确绘制,但在使用字段
description
时却可以正确绘制。

为什么计算的字段会破坏绘图,是否有其他方法来处理长标签?

json charts visualization vega-lite vega
1个回答
1
投票

使用 labelExpr。计算字段破坏了绘图,因为您将数组作为字段值传递。

{
  "$schema": "https://vega.github.io/schema/vega-lite/v5.json",
  "data": {
    "values": [
      {"status": "Negative", "description": "Example 2", "form": "HEY_MI"},
      {"status": "Negative", "description": "Example 2", "form": "VOV_MI"},
      {"status": "Negative", "description": "One", "form": "ZAYIN_TE"},
      {"status": "Negative", "description": "Example 2", "form": "HEY_MI"},
      {"status": "Negative", "description": "One", "form": "HEY_TO"},
      {"status": "Negative", "description": "One", "form": "ZAYIN_TO"}
    ]
  },
  "mark": {"type": "rect", "tooltip": true},
  "encoding": {
    "x": {
      "field": "description",
      "axis": {"labelAngle": -90, "labelExpr": "split(datum.label, ' ')"}
    },
    "y": {"field": "form", "title": "Form"},
    "color": {"aggregate": "count", "title": "No. of incidents"}
  }
}
© www.soinside.com 2019 - 2024. All rights reserved.