{"spec_id":"radar-multi","library":"echarts","language":"javascript","code":"// anyplot.ai\n// radar-multi: Multi-Series Radar Chart\n// Library: echarts 6.1.0 | JavaScript 22.23.2\n// Quality: 92/100 | Updated: 2026-08-18\n//# anyplot-orientation: square\n// anyplot.ai\n// radar-multi: Multi-Series Radar Chart\n// Library: echarts 5.5.1 | JavaScript 22\n// Quality: pending | Created: 2026-08-17\n\nconst t = window.ANYPLOT_TOKENS;\n\n// --- Data (in-memory, deterministic) ---------------------------------------\nconst indicators = [\n  { name: \"Sound Quality\", max: 100 },\n  { name: \"Battery Life\", max: 100 },\n  { name: \"Comfort\", max: 100 },\n  { name: \"Noise Cancel.\", max: 100 },\n  { name: \"Value\", max: 100 },\n  { name: \"Durability\", max: 100 },\n];\n\nconst earbuds = [\n  { name: \"AudioMax Pro\", value: [88, 72, 80, 92, 60, 75] },\n  { name: \"SoundWave Elite\", value: [70, 90, 85, 65, 78, 82] },\n  { name: \"EchoBuds Plus\", value: [78, 68, 92, 74, 88, 70] },\n];\n\n// --- Init -------------------------------------------------------------------\nconst chart = echarts.init(document.getElementById(\"container\"));\n\n// --- Option -----------------------------------------------------------------\nchart.setOption({\n  animation: false,\n  color: t.palette,\n  backgroundColor: \"transparent\",\n  title: {\n    text: \"radar-multi · javascript · echarts · anyplot.ai\",\n    left: \"center\",\n    top: 24,\n    textStyle: { color: t.ink, fontSize: 22, fontWeight: \"bold\" },\n  },\n  legend: {\n    data: earbuds.map((s) => s.name),\n    bottom: 16,\n    textStyle: { color: t.ink, fontSize: 16 },\n    itemWidth: 18,\n    itemHeight: 12,\n  },\n  radar: {\n    indicator: indicators,\n    shape: \"circle\",\n    center: [\"50%\", \"52%\"],\n    radius: \"70%\",\n    splitNumber: 5,\n    axisName: { color: t.inkSoft, fontSize: 15 },\n    axisLine: { lineStyle: { color: t.inkSoft } },\n    axisTick: { show: false },\n    axisLabel: { show: true, color: t.inkSoft, fontSize: 10 },\n    splitLine: { lineStyle: { color: t.grid } },\n    splitArea: {\n      show: true,\n      areaStyle: { color: [t.elevatedBg, \"transparent\"] },\n    },\n  },\n  series: [\n    {\n      type: \"radar\",\n      symbol: \"circle\",\n      symbolSize: 6,\n      emphasis: { focus: \"series\", lineStyle: { width: 5 } },\n      data: earbuds.map((s, i) => ({\n        name: s.name,\n        value: s.value,\n        // AudioMax Pro (brand series) is the focal product: a bolder\n        // outline plus a soft glow lift it above the other two polygons.\n        lineStyle:\n          i === 0\n            ? { color: t.palette[i], width: 4, shadowBlur: 12, shadowColor: t.palette[i] }\n            : { color: t.palette[i], width: 3 },\n        areaStyle: { color: t.palette[i], opacity: i === 0 ? 0.3 : 0.2 },\n        itemStyle: { color: t.palette[i] },\n      })),\n    },\n  ],\n});\n"}