我绘制了一个简单的热图(最小示例在 Vega 编辑器中打开图表),最初看起来是正确的。
许多标签非常长,因此我添加了变换
{"calculate": "split(datum.description, ' ')", "as": "description2"}
将标签拆分为空格字符上的新行(description
是映射到 x
轴的字段)。
但是现在的情节不正确。在链接的规范中,如果将
x
的编码从 "field": "description2"
更改为 "field": "description"
,整个绘图都会发生变化。许多具有 One
描述的项目在使用字段 description2
(计算字段)时无法正确绘制,但在使用字段 description
时却可以正确绘制。
为什么计算的字段会破坏绘图,是否有其他方法来处理长标签?
使用 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"}
}
}