我正在尝试绘制平行坐标并更改每条端到端线的颜色。在这种情况下,不是在每个轴之间都有线,而是从最左到最右。
我想在子标记对象中使用配色方案自动生成颜色。为此,我已使用 transform 在父标记属性中设置了字段 color ,但是在下面的字段查找中无法访问转换的结果。似乎 parent 在 transform 之前正在查找数据。
{
"$schema": "https://vega.github.io/schema/vega/v5.json",
"width": 700,
"height": 400,
"padding": 5,
"autosize": "pad",
"config": {
"axisY": {
"titleX": -2,
"titleY": 410,
"titleAngle": 0,
"titleAlign": "right",
"titleBaseline": "top"
}
},
"data": [
{
"name": "fruits",
"values": [
{"name": "apple", "country": "japan" },
{"name": "orange", "country": "US" }
]
},
{
"name": "fields",
"values": [
"name",
"country"
]
}
],
"scales": [
{
"name": "ord", "type": "point",
"range": "width", "round": true,
"domain": {"data": "fields", "field": "data"}
},
{
"name": "name", "type": "point",
"range": "height", "round": true,
"domain": {"data": "fruits", "field": "name"}
},
{
"name": "country", "type": "point",
"range": "height", "round": true,
"domain": {"data": "fruits", "field": "country"}
},
{
"name": "color",
"type": "ordinal",
"domain": {"data": "fruits", "field": "color"},
"range": {"scheme": "category20"}
}
],
"axes": [
{
"orient": "left", "zindex": 1,
"scale": "name", "title": "name",
"offset": {"scale": "ord", "value": "name", "mult": -1}
},
{
"orient": "left", "zindex": 1,
"scale": "country", "title": "country",
"offset": {"scale": "ord", "value": "country", "mult": -1}
}
],
"marks": [
{
"type": "group",
"from": {
"data": "fruits"
},
"data": [
{
"name": "fruits",
"source": "fruits",
"transform": [
{"type": "formula", "as": "color", "expr": "scale('color', datum.country)"}
]
}
],
"marks": [
{
"type": "line",
"from": {"data": "fields"},
"encode": {
"enter": {
"x": {"scale": "ord", "field": "data"},
"y": {
"scale": {"datum": "data"},
"field": {"parent": {"datum": "data"}}
},
"stroke": { "field": {"parent": "color" } },
"strokeWidth": {"value": 1.01},
"strokeOpacity": {"value": 0.3}
}
}
}
]
}
]
}
我的代码如下。在这种情况下,我想根据 country 字段更改颜色。
textTheme
在创建子标记对象之前如何应用变换?