Approximated radar: profile of two strategies
Vega-Lite has no radar mark: project each score into polar coordinates with calculate (cos/sin), then close the polygon with interpolate linear-closed.
Prerequisites
Vega-Lite v5
Vega-Lite
{
"$schema": "https://vega.github.io/schema/vega-lite/v5.json",
"config": { "view": { "stroke": "transparent" } },
"data": {
"values": [
{ "axe": "Backtest", "i": 0, "score": 8, "strategie": "MR-Swing" },
{ "axe": "Win rate", "i": 1, "score": 7, "strategie": "MR-Swing" },
{ "axe": "R moyen", "i": 2, "score": 6, "strategie": "MR-Swing" },
{ "axe": "Drawdown", "i": 3, "score": 8, "strategie": "MR-Swing" },
{ "axe": "Robustesse", "i": 4, "score": 7, "strategie": "MR-Swing" },
{ "axe": "Simplicité", "i": 5, "score": 9, "strategie": "MR-Swing" },
{ "axe": "Backtest", "i": 0, "score": 6, "strategie": "Breakout-H4" },
{ "axe": "Win rate", "i": 1, "score": 5, "strategie": "Breakout-H4" },
{ "axe": "R moyen", "i": 2, "score": 8, "strategie": "Breakout-H4" },
{ "axe": "Drawdown", "i": 3, "score": 5, "strategie": "Breakout-H4" },
{ "axe": "Robustesse", "i": 4, "score": 8, "strategie": "Breakout-H4" },
{ "axe": "Simplicité", "i": 5, "score": 6, "strategie": "Breakout-H4" }
]
},
"transform": [
{ "calculate": "datum.score * cos(PI/2 - 2*PI*datum.i/6)", "as": "px" },
{ "calculate": "datum.score * sin(PI/2 - 2*PI*datum.i/6)", "as": "py" }
],
"mark": { "type": "line", "interpolate": "linear-closed", "point": true, "strokeWidth": 2, "opacity": 0.85, "tooltip": true },
"encoding": {
"x": { "field": "px", "type": "quantitative", "scale": { "domain": [-10, 10] }, "axis": null },
"y": { "field": "py", "type": "quantitative", "scale": { "domain": [-10, 10] }, "axis": null },
"order": { "field": "i" },
"color": { "field": "strategie", "type": "nominal", "scale": { "range": ["#00f3ff", "#ff00ff"] }, "legend": { "orient": "top", "title": null } },
"tooltip": [
{ "field": "strategie", "title": "Stratégie" },
{ "field": "axe", "title": "Critère" },
{ "field": "score", "title": "Score" }
]
}
}Vega-LiteRadarcalculatePolaire