Я пытаюсь написать небольшую диаграмму для использования в анализе рисков / возможностей.Вы вводите 4 значения:
- PreConsequence & PostConsequence (диапазон значений от -4 до +4)
- PreLikelihood & PostLikelihood (диапазон значений от 0 до 4)
И визуализирует те с диаграммами следующим образом:
Затененная заливка отображает значения Pre , в то время как обводка отображает Post значения.Геометрия в левом квадранте представляет риск и должна быть красным , в то время как геометрия в правом квадранте представляет возможность и должна быть зеленой.
Я изо всех сил пытаюсь выяснитькак проверить отрицательные значения последствий и назначить цвет соответственно.Я думаю, что это будет сделано в последних двух строках моего кода ниже:
{
"$schema": "https://vega.github.io/schema/vega/v5.json",
"width": 500,
"height": 250,
"data": [
{
"name": "table",
"values": [
{"C": -4, "L": 0, "f":"Pre"}, {"C": 0, "L": 4, "f":"Pre"},
{"C": 0, "L": 2, "f":"Post"}, {"C": -1, "L": 0, "f":"Post"}
]
}
],
"scales": [
{
"name": "xscale",
"type": "linear",
"range": "width",
"nice": true,
"zero": true,
"domain": {"data": "table", "field": "C"},
"domainMax": 4,
"domainMin": -4
},
{
"name": "yscale",
"type": "linear",
"range": "height",
"domain": {"data": "table", "field": "L"},
"domainMax": 4,
"domainMin": 0
},
{
"name": "color",
"type": "ordinal",
"range":"ordinal",
"domain": {"data": "table", "field": "f"}
}
],
"axes": [
{"orient": "bottom", "scale": "xscale", "tickCount": 10 },
{"orient": "left", "scale": "yscale", "tickCount": 5, "offset": -250 }
],
"marks": [
{
"type": "group",
"from": {
"facet": {
"name": "series",
"data": "table",
"groupby": "f"
}
},
"marks": [
{
"type": "area",
"from": {"data": "series"},
"encode": {
"enter": {
"x": {"scale": "xscale", "field": "C" },
"y": {"scale": "yscale", "field": "L"},
"y2": {"scale": "yscale", "value": 0 },
"fillOpacity": [{ "test": "indata('series', 'f', 'Pre')", "value": 0.3 }, {"value": 0}],
"strokeWidth": [{ "test": "indata('series', 'f', 'Pre')", "value": 0 }, {"value": 2}],
"fill": [{ "test": "indata('series', 'f', 'Pre')", "value": "red" }, {"value": "red"}],
"stroke": [{ "test": "indata('series', 'f', 'Pre')", "value": "red" }, {"value": "red"}]
}
}
}
]
}
]
}
Может кто-нибудь дать мне несколько советов о том, как проверить значения данных и соответственно установить цвета заливки и цвета обводки?
Спасибо