{ "$schema": "../_schema.json", "element": "chart-series", "shared_base": true, "properties": { "categories": { "type": "string", "description": "per-series category override; range reference only.", "add": true, "set": true, "get": true, "examples": [ "--prop series1.categories=\"Sheet1!$A$2:$A$5\"" ], "enforcement": "report", "readback": "as emitted by handler (per-format details vary)" }, "categoriesRef": { "type": "string", "add": false, "set": false, "get": true, "description": "A1 cell range backing the category labels.", "readback": "A1 range string", "enforcement": "report" }, "color": { "type": "color", "description": "series fill color.", "add": true, "set": true, "get": true, "examples": [ "--prop series1.color=#4472C4", "--prop series1.color=4472C4" ], "readback": "#-prefixed uppercase hex", "enforcement": "report" }, "dataLabels.numFmt": { "type": "string", "add": false, "set": false, "get": true, "description": "per-series data label number format readback.", "readback": "format code", "enforcement": "report" }, "dataLabels.separator": { "type": "string", "add": false, "set": false, "get": true, "description": "per-series data label separator string readback.", "readback": "separator string", "enforcement": "report" }, "errBars": { "type": "string", "add": false, "set": true, "get": true, "description": "error bar value type (fixed, percent, stddev, stderr); accepted aliases: fixedValue, percentage/pct, standardDeviation, standardError. Pass 'none' to clear. Silently ignored on series types that don't support error bars.", "readback": "OOXML errValType token", "enforcement": "lenient" }, "invertIfNeg": { "type": "string", "add": false, "set": true, "get": true, "description": "invert color for negative values. Bar/column/area/pie series only; line/scatter silently ignore.", "readback": "true | false", "enforcement": "lenient" }, "lineDash": { "type": "enum", "values": [ "solid", "sysDash", "sysDot", "sysDashDot", "lgDash", "lgDashDot", "lgDashDotDot", "dash", "dashDot", "dot", "longDash" ], "set": true, "get": true, "aliases": [ "dash" ], "description": "series line dash style. Set accepts user-friendly aliases (dash/dot/dashDot/longDash); Get returns OOXML token (sysDash/sysDot/sysDashDot/lgDash). 'dashDotDot' has no native enum member and is accepted as an alias for sysDashDotDot — Get readback will return sysDashDotDot. 'solid' is the only round-trip-stable value.", "examples": [ "--prop lineDash=dash", "--prop lineDash=solid" ], "readback": "OOXML preset dash token", "enforcement": "report" }, "lineWidth": { "type": "number", "set": true, "get": true, "description": "series line width in points (e.g. 1.5).", "examples": [ "--prop lineWidth=1.5" ], "readback": "numeric width in points", "enforcement": "report" }, "marker": { "type": "string", "set": true, "get": true, "description": "per-series marker symbol. Values: circle, dash, diamond, dot, plus, square, star, triangle, x, none, auto. Supports 'symbol:size:COLOR' compound form (e.g. 'circle:8:FF0000'). Applies to line/scatter/radar series. (picture markers are not implemented.)", "examples": [ "--prop marker=circle", "--prop marker=\"circle:8:FF0000\"" ], "readback": "marker symbol name", "enforcement": "report" }, "markerSize": { "type": "number", "set": true, "get": true, "description": "marker size in points (2–72). Applies when marker is not 'none'.", "examples": [ "--prop markerSize=8" ], "readback": "integer", "enforcement": "report" }, "markerColor": { "type": "string", "aliases": [ "marker.color" ], "set": true, "get": true, "description": "per-series marker fill color (line/scatter/radar). Preserves existing symbol and size — pair with marker=/markerSize= to set the triplet independently. Round-trips via Reader's spPr/solidFill probe.", "examples": [ "--prop markerColor=FF0000" ], "readback": "hex color, e.g. #FF0000", "enforcement": "report" }, "name": { "type": "string", "description": "series name shown in legend and data labels.", "aliases": [ "title" ], "add": true, "set": true, "get": true, "examples": [ "--prop name=\"Q1\"", "--prop series1.name=\"Q1\"", "--prop name=\"Product A\"", "--prop series1.name=\"Product A\"", "--prop name=\"Revenue\"", "--prop series1.name=\"Revenue\"" ], "readback": "series name string", "enforcement": "report" }, "nameRef": { "type": "string", "add": false, "set": false, "get": true, "description": "A1 cell reference backing the series name.", "readback": "A1 cell reference", "enforcement": "report" }, "scatterStyle": { "type": "string", "add": false, "set": false, "get": true, "description": "scatter sub-style (line/lineMarker/marker/smooth/smoothMarker/none).", "readback": "OOXML scatterStyle token", "enforcement": "report" }, "secondaryAxis": { "type": "bool", "add": false, "set": false, "get": true, "description": "true when the chart has more than one value axis (this series uses the secondary).", "readback": "true | false", "enforcement": "report" }, "smooth": { "type": "string", "description": "smooth line interpolation for line/scatter series (true|false).", "appliesWhen": { "parent.chartType": [ "line", "scatter" ] }, "set": true, "get": true, "examples": [ "--prop smooth=true" ], "readback": "true | false", "enforcement": "report" }, "values": { "type": "string", "description": "comma-separated numbers, OR a cell range reference (Sheet1!B2:B13)", "add": true, "set": true, "get": true, "examples": [ "--prop series1.values=\"120,150,180\"", "--prop series1.values=\"Sheet1!$B$2:$B$5\"", "--prop series1.values=\"120,150,180,210\"" ], "enforcement": "strict" }, "bubbleSize": { "type": "string", "description": "bubble chart per-point sizes; comma-separated numbers OR a cell range reference. Defaults to the y-values when omitted.", "appliesWhen": { "parent.chartType": [ "bubble" ] }, "add": true, "set": false, "get": true, "examples": [ "--prop series1.bubbleSize=\"10,20,30\"", "--prop series1.bubbleSize=\"Sheet1!$D$1:$D$3\"" ], "readback": "comma-separated numeric list (cached values)", "enforcement": "report" }, "bubbleSizeRef": { "type": "string", "description": "A1 cell range backing bubble per-point sizes. Coexists with bubbleSize (the literal becomes the numCache).", "appliesWhen": { "parent.chartType": [ "bubble" ] }, "add": true, "set": false, "get": true, "examples": [ "--prop series1.bubbleSizeRef=\"Sheet1!$D$1:$D$3\"" ], "readback": "A1 range string", "enforcement": "report" } } }