拓冰建站拓冰建站
首页 / 资讯中心 / 正文

OfficeCLI 散点图(Scatter Chart)全能力实战指南:从基础样式到趋势线、误差线与高级标注

CLIAI 应用MCP 服务【免费下载链接】OfficeCLIOfficeCLI is the first and best Office suite purpose-built for AI agents to read, edit, and automate Word, Excel, and PowerPoint files. Free, open-source, single binary, no Office installation required.项目地址https://gitcode.com/GitHub_Trending/of/OfficeCLI点击查看免费下载本文基于 OfficeCLI 仓库中 examples/excel/charts/charts-scatter.md 这一示例文档展开系统讲解如何在无需安装 Microsoft Office 的前提下通过 OfficeCLI 命令行与 Python SDK 生成包含 6 个图表面、24 张散点图的工作簿charts-scatter.xlsx。读完本文你将掌握 scatter 图表类型下全部--prop参数的取值与组合方式包括四种散点样式、八种标记形状、六类趋势线、四类误差线、完整的样式系统标题、阴影、渐变、边框、网格线以及次坐标轴、参考线、对数轴、条件着色等高级特性并理解这些参数在仓库源码中的底层实现机制。示例概览三个文件协同工作散点图示例由三份文件组成它们共同产出同一份结果工作簿文件作用charts-scatter.pyPython 脚本通过officecliPython SDKpip install officecli-sdk驱动命令行生成工作簿每个图表命令都以可复制的 shell 命令形式注释在代码中charts-scatter.shBash 脚本是.py的 CLI 孪生版本直接调用officecli二进制逐条执行create/open/add/remove/close/validatecharts-scatter.md本示例文档把每个图表sheet映射到它所演示的功能特性charts-scatter.xlsx生成的最终工作簿共 6 个图表面、24 张散点图charts-scatter.py的脚本头注释明确声明示例的目标是让 officecli 支持的每一个散点图特性都至少被演示一次——散点样式、标记类型、平滑曲线、趋势线线性、多项式、指数、对数、幂、移动平均、误差线、轴缩放、网格线、数据标签、图例、填充、阴影、边框、次坐标轴、参考线、对数刻度与颜色规则。环境准备与快速再生示例命令在examples/excel目录下执行Python 与 Bash 两条路径均可产出等价的结果文件cd examples/excel python3 charts-scatter.py # → charts-scatter.xlsx6 个图表面24 张散点图Python 路径需要先安装 SDK 且保证officecli二进制在PATH上pip install officecli-sdk # 再加上可用的 officecli 二进制 python3 charts-scatter.pycharts-scatter.py在导入时做了双保险优先导入已安装的officecli-sdk失败则把仓库内的 sdk/python 目录插入sys.path作为回退。脚本通过officecli.create(FILE, --force)打开一个常驻进程然后以doc.batch(items)单次往返把所有 sheet 与图表通过命名管道提交——每个 item 都是{command,parent,type,props}结构与officecli batch列表中的条目完全一致。.sh版本则有意不使用set -e以便在遇到向前兼容的UNSUPPORTED props警告officecli 退出码 2时继续构建完整文档。注意charts-scatter.md中的命令示例使用了data.xlsx作为目标文件而.py与.sh脚本实际生成的文件是charts-scatter.xlsx。下文命令统一以脚本实际使用的charts-scatter.xlsx为准保证可直接复制运行。Sheet 1散点图基础Scatter Fundamentals该图表面用 4 张图覆盖散点的四种基础形态标记连线、仅标记、平滑曲线、仅连线。# ① 基本散点圆形标记 连接线 officecli add charts-scatter.xlsx /1-Scatter Fundamentals --type chart \ --prop chartTypescatter \ --prop series1Male:62,68,72,78,82,88,95 \ --prop categories160,165,170,175,180,185,190 \ --prop markercircle --prop markerSize6 --prop lineWidth1.5 \ --prop catTitleHeight (cm) --prop axisTitleWeight (kg) # ② 仅标记scatterStylemarker无连接线 officecli add charts-scatter.xlsx /1-Scatter Fundamentals --type chart \ --prop chartTypescatter --prop scatterStylemarker \ --prop markerSize8 --prop gridlinesD9D9D9:0.5:dot # ③ 平滑曲线Bezier 插值 officecli add charts-scatter.xlsx /1-Scatter Fundamentals --type chart \ --prop chartTypescatter --prop scatterStylesmooth \ --prop smoothtrue --prop markerdiamond --prop lineWidth2 # ④ 仅连线无标记 officecli add charts-scatter.xlsx /1-Scatter Fundamentals --type chart \ --prop chartTypescatter --prop scatterStyleline \ --prop showMarkerfalse --prop lineWidth2.5 --prop lineDashdash涉及特性scatter、scatterStylemarker|smooth|line、smoothtrue、markercircle|diamond、markerSize、lineWidth、lineDashdash、showMarkerfalse、catTitle、axisTitle、gridlines。源码级原理scatterStyle 如何落地在 ChartHelper.Builder.cs 的BuildScatterChart中scatterStyle字符串被映射为 OOXML 的ScatterStyleValues枚举marker → Marker、line → Line、smooth/smoothmarker → SmoothMarker未指定时默认lineMarker。分类轴数据categories会被解析为散点图的 X 值数组解析失败的点取 0。特别地当样式为marker仅标记时源码会对每个系列的spPr显式追加一个NoFill的Outline从而隐藏连接线——这是仅标记形态得以成立的底层实现。对应地ChartHelper.Setter.cs 中的case scatterstyle接受更宽容的别名输入line/lineonly、linemarker、marker/markeronly、smooth/smoothline、smoothmarker并直接写回C.ScatterStyle元素。case smoothL2148则同时作用于图表级C.Smooth与每个 line/scatter 系列的C.Smooth子元素若图表类型不支持平滑如柱状图会以UNSUPPORTED提示表面化避免调用方误以为设置已生效。case showmarkerL2177在隐藏标记时会把散点系列中的Marker符号置为None这与仅连线的视觉目标一致。Sheet 2标记样式Marker Styles该图表面用 4 张图演示全部 8 种标记形状circle、diamond、square、triangle、star、x、plus、dash以及按系列独立控制标记的能力。# ① 按系列指定标记circle / diamond / square officecli add charts-scatter.xlsx /2-Marker Styles --type chart \ --prop chartTypescatter \ --prop series1.markercircle --prop series2.markerdiamond \ --prop series3.markersquare --prop markerSize8 # ② 按系列指定标记triangle / star / x officecli add charts-scatter.xlsx /2-Marker Styles --type chart \ --prop chartTypescatter \ --prop series1.markertriangle --prop series2.markerstar \ --prop series3.markerx --prop markerSize9 # ③ 大标记 plus / dash 形状 officecli add charts-scatter.xlsx /2-Marker Styles --type chart \ --prop chartTypescatter --prop scatterStylemarker \ --prop series1.markercircle --prop series2.markerplus \ --prop series3.markerdash --prop markerSize10 # ④ showMarkerfalse lineDashdashDot officecli add charts-scatter.xlsx /2-Marker Styles --type chart \ --prop chartTypescatter --prop scatterStylelineMarker \ --prop showMarkerfalse --prop lineDashdashDot涉及特性series{N}.markercircle|diamond|square|triangle|star|x|plus|dash、markerSize、scatterStylelineMarker|marker、showMarkerfalse、lineDashdashDot。在.py的对应实现中per-series 属性以**{series1.marker: circle, ...}展开为 props 字典传入chart()辅助函数配合colors如4472C4,ED7D31,70AD47与legendbottom可以在一张图中清晰区分三个传感器或实验组的点形与颜色。scatterStylemarker时 markerSize 可调至 10 以强调数据点本身。Sheet 3趋势线Trendlines该图表面覆盖全部趋势线类型及其子属性线性、多项式含阶数、指数含前后外推、对数以及按系列分别配置。# ① 线性趋势线 显示方程 officecli add charts-scatter.xlsx /3-Trendlines --type chart \ --prop chartTypescatter --prop scatterStylemarker \ --prop trendlinelinear \ --prop series1.trendline.equationtrue # ② 多项式3 阶 显示 R 方 officecli add charts-scatter.xlsx /3-Trendlines --type chart \ --prop chartTypescatter --prop scatterStylemarker \ --prop trendlinepoly:3 \ --prop series1.trendline.rsquaredtrue # ③ 指数趋势线 前后外推forward2, backward1 officecli add charts-scatter.xlsx /3-Trendlines --type chart \ --prop chartTypescatter --prop scatterStylemarker \ --prop trendlineexp:2:1 \ --prop series1.trendline.nameExponential Fit # ④ 按系列趋势线线性 vs 对数 officecli add charts-scatter.xlsx /3-Trendlines --type chart \ --prop chartTypescatter --prop scatterStylemarker \ --prop series1.trendlinelinear --prop series2.trendlinelog \ --prop series1.trendline.equationtrue \ --prop series2.trendline.rsquaredtrue涉及特性trendlinelinear|poly:N|exp|log|power|movingAvg、trendlineexp:forward:backward外推、series{N}.trendline按系列、series{N}.trendline.equation、series{N}.trendline.rsquared、series{N}.trendline.name。源码级原理BuildTrendline 的参数解析ChartHelper.SetterHelpers.cs 的BuildTrendline是趋势线的核心解析函数支持type、type:order、type:forward:backward三种格式类型映射linear→Linear、exp/exponential→Exponential、log/logarithmic→Logarithmic、poly/polynomial→Polynomial、power→Power、movingavg/moving/movingaverage→MovingAverage未知类型抛出CliException。多项式阶数poly:N中的N被写入PolynomialOrder并Clamp(2, 6)OOXML 要求阶数 2~6未显式指定时默认阶数 2与 Excel 添加趋势线 → 多项式 的默认一致。移动平均周期movingAvg:N写入Period且周期必须 2OOXMLST_Skip MinInclusive2未指定时回退到 2。外推type:forward:backward的第二个数字写入C.Forward第三个写入C.Backward即示例 ③ 中的exp:2:1表示向前外推 2 个周期、向后外推 1 个周期。ApplyTrendlineOptionsL136 起负责子属性写入name/label会同时生成c:trendlineName与带富文本的c:trendlineLbl只有后者才能让 Excel 真正在趋势线旁绘制标签forward/backward/order/period分别对应C.Forward、C.Backward、PolynomialOrder、Period。case trendlineChartHelper.Setter.cs L2313还支持以分号连接的多规格列表如linear;exp保证 dump→replay 能还原一条系列上的多条趋势线。Sheet 4误差线Error Bars该图表面用 4 张图覆盖散点系列上全部误差线类型固定值、百分比、标准差、标准误。# ① 固定误差±5 officecli add charts-scatter.xlsx /4-Error Bars --type chart \ --prop chartTypescatter \ --prop errBarsfixed:5 # ② 百分比误差10% officecli add charts-scatter.xlsx /4-Error Bars --type chart \ --prop chartTypescatter \ --prop errBarspercent:10 # ③ 标准差误差线 officecli add charts-scatter.xlsx /4-Error Bars --type chart \ --prop chartTypescatter \ --prop errBarsstddev # ④ 标准误 系列阴影 officecli add charts-scatter.xlsx /4-Error Bars --type chart \ --prop chartTypescatter \ --prop errBarsstderr \ --prop series.shadow000000-4-315-2-30涉及特性errBarsfixed:N|percent:N|stddev|stderr、series.shadow。在 ChartHelper.Setter.cs 的case errbars中设置器会先清空所有系列上的既有C.ErrorBars再通过SeriesSupportsErrorBars(ser)校验系列是否支持误差线最后调用BuildErrorBars(value)生成 OOXML 元素——因此 errBars 可以安全地重复设置或重置值为none时仅清空。此外源码还提供errBars.direction/errbardirection子属性L2398-L2423取值plus、minus、both默认 both控制C.ErrorBarType的plus|minus|both实现对误差方向的微调。series.shadow000000-4-315-2-30是 OfficeCLI 的阴影参数规范依次为颜色000000、模糊半径、角度315°、距离2与透明度30。阴影用于增强带误差的测量数据的层次感示例 ④ 将其与gridlinesD9D9D9:0.5:dot的浅色点状网格组合突出实验数据的离散度。Sheet 5样式系统Styling该图表面覆盖标题样式、填充、渐变、边框与坐标轴格式化的全部能力。# ① 标题样式 系列阴影与描边 officecli add charts-scatter.xlsx /5-Styling --type chart \ --prop chartTypescatter \ --prop title.fontGeorgia --prop title.size16 \ --prop title.color1F4E79 --prop title.boldtrue \ --prop title.shadow000000-3-315-2-30 \ --prop series.shadow000000-4-315-2-30 \ --prop series.outline333333:1.5 # ② 渐变、透明度、绘图区与图表区填充 officecli add charts-scatter.xlsx /5-Styling --type chart \ --prop chartTypescatter \ --prop gradients4472C4-BDD7EE:90;ED7D31-FBE5D6:90 \ --prop transparency20 \ --prop plotFillF5F5F5 --prop chartFillFAFAFA # ③ 轴字体、网格线、次网格线、轴线 officecli add charts-scatter.xlsx /5-Styling --type chart \ --prop chartTypescatter \ --prop axisfont9:C00000:Arial \ --prop gridlinesBFBFBF:0.75:solid \ --prop minorGridlinesE0E0E0:0.25:dot \ --prop axisLine333333:1 # ④ 图表区/绘图区边框 圆角 officecli add charts-scatter.xlsx /5-Styling --type chart \ --prop chartTypescatter \ --prop chartArea.border333333:1.5 \ --prop plotArea.border999999:0.75 \ --prop roundedCornerstrue涉及特性title.font/size/color/bold、title.shadow、series.shadow、series.outline、gradients、transparency、plotFill、chartFill、axisfont、gridlines、minorGridlines、axisLine、chartArea.border、plotArea.border、roundedCorners。几个值得注意的参数格式gradients用分号连接多个系列的渐变每个渐变为起色-止色:角度格式示例 ② 为两个系列分别配置了蓝系4472C4→BDD7EE与橙系ED7D31→FBE5D6角度 90°配合transparency20的 20% 透明度。axisfont9:C00000:Arial为字号:颜色:字体三段式gridlines/minorGridlines均为颜色:线宽:线型三段式线型取solid、dot、dash等axisLine333333:1为轴线的颜色与粗细。边框参数chartArea.border与plotArea.border使用颜色:线宽格式注意此处冒号分隔与 series.outline 一致可分别控制图表外框与绘图区内框。Sheet 6高级特性Advanced该图表面集中展示次坐标轴、参考线、对数刻度与条件着色四类高级能力。# ① 次 Y 轴第 2 个系列放到右侧 Y 轴 officecli add charts-scatter.xlsx /6-Advanced --type chart \ --prop chartTypescatter \ --prop secondaryAxis2 # ② 参考线水平目标线 officecli add charts-scatter.xlsx /6-Advanced --type chart \ --prop chartTypescatter \ --prop referenceLine75:FF0000:Target:dash # ③ 对数轴 坐标轴上下限 officecli add charts-scatter.xlsx /6-Advanced --type chart \ --prop chartTypescatter \ --prop logBase10 \ --prop axisMin1 --prop axisMax10000 # ④ 数据标签 条件着色规则 officecli add charts-scatter.xlsx /6-Advanced --type chart \ --prop chartTypescatter --prop scatterStylemarker \ --prop dataLabelstrue --prop labelPostop \ --prop colorRule60:C00000:00AA00涉及特性secondaryAxis、referenceLinevalue:color:label:dash、logBase、axisMin、axisMax、dataLabels、labelPostop、colorRulethreshold:belowColor:aboveColor。源码级原理参考线与条件着色referenceLine由 ChartHelper.Advanced.cs 的AddReferenceLine实现其规范是冒号分隔的位置参数支持多种形态value默认红色虚线value:colorvalue:color:labelvalue:color:width:dash4 段第 3 段为数字且第 4 段为已知虚线样式时按宽度解释value:color:label:dash4 段旧式标签写法value:color:width:dash:label5 段标准写法宽度可留空取默认 1.5pt源码会先解析数值与颜色默认FF0000线宽默认 1.5pt、范围校验为0.25~10虚线样式支持solid/dot/dash/dashdot/longdash/longdashdot/longdashdotdot。实现方式是在现有图表中插入一个隐藏的LineChart覆盖层共享现有坐标轴 ID其系列的所有取值均为参考值从而绘制出一条平坦的目标线。值得一提的是源码对百分比堆叠图上的参考线做了溢出告警当参考值 1 时提示用户很可能把 50 误写成了 0.5避免 Excel 自动拉长数值轴导致真实数据被压缩。colorRule由同文件中的ApplyColorRuleL290 起实现支持两种格式threshold:belowColor:aboveColor双区着色以及low:lowColor:mid:midColor:high:highColor三段式着色。示例 ④ 的60:C00000:00AA00表示低于 60 的点标红C00000、高于 60 的点标绿00AA00非常适合 KPI 达标监控类图表。源码遍历每个数据点按阈值区间为单个数据点应用独立颜色。参数速查总表将六张图表面涉及的参数汇总如下便于实际使用时快速查阅类别参数取值格式图表类型chartTypescatter散点、bubble气泡等散点样式scatterStylemarker/line/lineMarker/smooth/smoothMarker平滑smoothtrue/false标记marker、series{N}.markercircle/diamond/square/triangle/star/x/plus/dash标记大小markerSize数值示例 6~10标记显示showMarkertrue/false连线lineWidth、lineDash线宽数值solid/dot/dash/dashDot等趋势线trendlinelinear/poly:N阶数 2~6/exp[:forward:backward]/log/power/movingAvg[:N]周期≥2趋势线子属性series{N}.trendline.equation、.rsquared、.nametrue/false自定义标签文本误差线errBarsfixed:N/percent:N/stddev/stderr/none误差线方向errBars.directionplus/minus/both标题title.font/.size/.color/.bold/.shadow字体名字号十六进制颜色true/false颜色-模糊-角度-距离-透明度系列效果series.shadow、series.outline颜色-模糊-角度-距离-透明度颜色:线宽填充gradients、transparency、plotFill、chartFill起色-止色:角度分号连接多系列0~100十六进制颜色坐标轴axisfont、axisLine字号:颜色:字体颜色:线宽网格gridlines、minorGridlines颜色:线宽:线型边框chartArea.border、plotArea.border、roundedCorners颜色:线宽true/false次坐标轴secondaryAxis系列序号如2表示第 2 个系列放右侧 Y 轴参考线referenceLinevalue[:color[:label|:width:dash][:dash]]宽度默认 1.5pt对数轴logBase、axisMin、axisMax底数如 10数值边界数据标签dataLabels、labelPostrue/falsetop等位置条件着色colorRulethreshold:belowColor:aboveColor或三段式Python SDK 批处理路径与 CLI 生命周期.py版本演示了 OfficeCLI Python SDK 的典型用法一个常驻进程、一次batch往返完成所有构建。核心模式如下摘自 charts-scatter.pyimport officecli # pip install officecli-sdk def sheet(name): return {command: add, parent: /, type: sheet, props: {name: name}} def chart(parent, **props): return {command: add, parent: parent, type: chart, props: props} with officecli.create(charts-scatter.xlsx, --force) as doc: items [ sheet(1-Scatter Fundamentals), chart(/1-Scatter Fundamentals, chartTypescatter, categories160,165,170,175,180,185,190, series1Male:62,68,72,78,82,88,95, markercircle, markerSize6, lineWidth1.5, catTitleHeight (cm), axisTitleWeight (kg), legendbottom), # ... 其余 5 个 sheet、23 张图 ... {command: remove, path: /Sheet1}, # 删除默认空白 Sheet1 ] doc.batch(items)SDK 代码位于 sdk/python/officecli.py与命令行共享同一套props语义——这也是为什么.py与.sh能产出等价文件。.sh脚本则展示了完整的 CLI 生命周期charts-scatter.shofficecli create charts-scatter.xlsx officecli open charts-scatter.xlsx officecli add charts-scatter.xlsx / --type sheet --prop name1-Scatter Fundamentals officecli add charts-scatter.xlsx /1-Scatter Fundamentals --type chart --prop chartTypescatter ... officecli remove charts-scatter.xlsx /Sheet1 officecli close charts-scatter.xlsx officecli validate charts-scatter.xlsx即create → open → addsheet/图表→ remove清理默认 Sheet1→ close → validate的完整流程。脚本末尾的validate会对生成文件做一次结构校验是生产环境自动化生成 Office 文档时值得保留的一步。检查生成的散点图charts-scatter.md提供了两个用于检查生成结果的命令# 列出工作簿中的所有图表 officecli query charts-scatter.xlsx chart # 精确定位某个图表节点按路径查看其属性 officecli get charts-scatter.xlsx /1-Scatter Fundamentals/chart[1]query用于快速确认图表总数与分布get配合路径索引可以深入到某个 sheet 下的第 N 张图核对chartType、scatterStyle、trendline、errBars等属性是否按预期写入是验证参数生效与排查问题的最直接手段。结合validate的结构校验可以确保生成的charts-scatter.xlsx既符合 OOXML 规范又完整呈现了 OfficeCLI 散点图模块的全部能力。小结charts-scatter.md示例是 OfficeCLI 散点图能力的全景演示从四种基础散点形态出发覆盖 8 种标记、6 类趋势线、4 种误差线、完整样式系统与次坐标轴/参考线/对数轴/条件着色等高级特性并且同一份工作簿可以通过 CLI 与 Python SDK 两条等价路径生成。配合 ChartHelper.Builder.cs、ChartHelper.Setter.cs、ChartHelper.SetterHelpers.cs 与 ChartHelper.Advanced.cs 中的实现你可以按需组合上述参数为 AI 工作流批量产出符合 Excel 规范的、带统计语义趋势、误差、阈值的散点图。赞分享CLIAI 应用MCP 服务【免费下载链接】OfficeCLIOfficeCLI is the first and best Office suite purpose-built for AI agents to read, edit, and automate Word, Excel, and PowerPoint files. Free, open-source, single binary, no Office installation required.项目地址https://gitcode.com/GitHub_Trending/of/OfficeCLI点击查看免费下载相关推荐Chart.js 散点图Scatter Chart实战指南从交互示例到源码级原理Chart.js 散点图Scatter Chart实战指南从交互示例到源码级原理 导读 本文围绕 Chart.js 官方示例 docs/samples/o图表库前端数据可视化Chart.js 散点图Scatter Chart完全指南基于线性轴的 {x, y} 点数据可视化Chart.js 散点图Scatter Chart完全指南基于线性轴的 {x, y} 点数据可视化 散点图Scatter Chart是 Chart.j图表库前端数据可视化暗黑2存档编辑器完整指南5分钟用d2s-editor改好D2/D2R存档暗黑2存档编辑器完整指南5分钟用d2s editor改好D2/D2R存档 角色卡在 88 级差 1 级就够不到那件符文之语的穿戴等级或者游戏崩溃之后存档打CLIAI 应用MCP 服务上一篇3大创新技术打造专属Lano Visualizer让音频可视化高效呈现下一篇UModel深度技术解析虚幻引擎资源逆向工程架构揭秘创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
分享:

看完干货,该让你的企业上线了

免费需求沟通 · 48 小时内出具建站方案 · 河南本地可上门