个人主页杨利杰YJlio❄️个人专栏《Sysinternals实战教程》 《Windows PowerShell 实战》 《WINDOWS教程》 《IOS教程》《微信助手》 《锤子助手》 《Python》 《Kali Linux》《那些年未解决的Windows疑难杂症》让复杂的事情更简单让重复的工作自动化《超简单用 Python 让 Excel 飞起来》读书笔记第7章 案例04 添加并设置图表标题和坐标轴标题1. 第7章 案例04 添加并设置图表标题和坐标轴标题2. 适用场景什么时候必须写完整标题3. title / xlabel / ylabel 三件套4. 标题不要只写图类型要写结论5. 标题样式怎么调fontsize、pad 和单位6. 从 Excel 读取数据后自动生成标题7. 常见问题与踩坑记录7.1 中文标题显示成方块怎么办7.2 纵轴标题到底要不要写单位7.3 标题太长被裁切怎么办7.4 标题能不能写结论8. 效果验证怎样判断标题设置是否合格9. 我的总结提升1. 第7章 案例04 添加并设置图表标题和坐标轴标题这一篇继续整理《超简单用 Python 让 Excel 飞起来》第 7 章的图表部分本节重点是**在 Matplotlib 图表中添加并设置图表标题、横轴标题和纵轴标题**。如果只是自己临时看图标题写不写可能影响不大。但如果图表要放进周报、日报、技术博客、数据分析报告标题就不是装饰而是图表的“身份证”。没有标题的图别人看到以后还要追问这是什么数据横轴是什么纵轴单位是什么这张图想表达什么结论我对图表有一个很直接的判断标准如果一张图单独发出去别人看不懂它在表达什么那这张图就还没有达到交付标准。这张图展示了为什么图表必须写标题以及“图表标题 横轴标题 纵轴标题”三件套在表达中的作用。从这张图中可以看出图表标题负责告诉读者“这张图在讲什么”横轴标题负责说明分类或时间维度纵轴标题负责说明指标和单位。三者缺一项图表的解释成本都会上升。所以本节的目标很明确不是单纯会写 plt.title()而是学会把图表做成别人能直接看懂、能直接复盘、能直接放进报告的可交付内容。原始数据生成图表添加图表标题添加横轴标题添加纵轴标题检查单位和结论输出可交付图表2. 适用场景什么时候必须写完整标题在实际办公自动化里只要图表不是只给自己看就建议把标题写完整。尤其是下面几类场景标题必须规范。场景是否需要完整标题原因周报 / 月报必须阅读者通常不会看你的代码只看最终图表工单趋势分析必须需要说明横轴是月份、日期还是部门销售数据分析必须纵轴通常涉及金额、数量、占比必须标单位博客教程截图必须读者需要通过图片快速理解代码效果临时自测可简化如果只是本地调试可以先不追求完整样式标题不是为了让图好看而是为了降低解释成本。尤其在数据汇报里一张图如果还需要你口头解释半天说明图表本身的信息表达不够完整。我建议把图表标题拆成三个层级来看图表标题说明这张图的主题或结论横轴标题说明横轴代表什么维度纵轴标题说明纵轴代表什么指标最好带单位。3. title / xlabel / ylabel 三件套Matplotlib 中最基础、最常用的标题三件套就是这三个函数plt.title(图表标题)plt.xlabel(横轴标题)plt.ylabel(纵轴标题)它们分别控制图表顶部标题、横轴说明和纵轴说明。不要小看这三行代码它们决定了读者能不能快速读懂图表。这张图展示了 title / xlabel / ylabel 三件套在图表中的具体位置。从这张图中可以看出title 位于图表顶部xlabel 位于横轴下方ylabel 位于纵轴旁边。也就是说这三个函数并不是随便写几个字而是在给图表补齐阅读坐标。下面用一个最小示例来看importmatplotlib.pyplotasplt months[1月,2月,3月,4月,5月,6月]tickets[120,98,135,110,150,160]plt.figure(figsize(8,4))plt.plot(months,tickets,markero)plt.title(月度工单数量趋势)plt.xlabel(月份)plt.ylabel(工单数量单)plt.grid(axisy,linestyledashed,alpha0.4)plt.tight_layout()plt.show()这段代码里我最建议注意的是 ylabel(工单数量单)。纵轴最好不要只写“数量”而要写成“工单数量单”这种格式。推荐写法指标名称 单位。例如金额元、耗时分钟、占比%、工单数量单。不推荐写法只写“数量”“金额”“时间”因为这些词没有业务上下文读者容易误解。4. 标题不要只写图类型要写结论新手写图表标题最容易犯的错误是标题只写图类型比如“折线图”“柱状图”“工单趋势图”。这些标题不是完全错但信息量太低。如果图表要用于汇报我更推荐写成“结论型标题”。也就是说标题不要只告诉别人“这是一张什么图”而要告诉别人“这张图说明了什么”。这张图展示了普通标题和结论型标题之间的差异。从这张图中可以看出左侧“工单趋势图”只是描述图表类型右侧“2026上半年工单量下降 -25%”直接给出了趋势结论。对于报告阅读者来说右侧标题明显更有价值。我自己常用的标题模板是对象 时间范围 变化结论 关键数字比如下面这些标题就比“趋势图”更清楚普通标题更推荐的结论型标题工单趋势图2026上半年工单量下降 25%销售额图表2026年销售额连续 6 个月增长用户增长图产品月度用户从 15 万增长到 110 万故障分析图网络类故障占比连续三周上升这里的核心逻辑是标题不是图表的名字而是读者进入图表的第一条线索。如果用 Python 自动生成结论型标题可以这样写importmatplotlib.pyplotasplt months[1月,2月,3月,4月,5月,6月]tickets_2025[5680,5340,5120,4680,4350,4260]tickets_2026[4310,4120,3860,3480,3250,3200]drop_rate(tickets_2026[-1]-tickets_2025[-1])/tickets_2025[-1]plt.figure(figsize(8,4))plt.plot(months,tickets_2025,markero,label2025年上半年)plt.plot(months,tickets_2026,markero,label2026年上半年)plt.title(f2026上半年工单量下降{drop_rate:.0%})plt.xlabel(月份)plt.ylabel(工单量单)plt.legend()plt.grid(axisy,linestyledashed,alpha0.4)plt.tight_layout()plt.show()注意结论型标题不能乱写必须来自数据计算或明确统计结果。否则标题就会从“帮助理解”变成“误导读者”。5. 标题样式怎么调fontsize、pad 和单位标题内容写对之后下一步才是样式调整。很多人一上来就研究颜色、字体、线条但标题本身没有写清楚这个顺序是反的。Matplotlib 里标题和坐标轴标题常用的样式参数主要有参数作用常见使用位置fontsize控制字体大小title、xlabel、ylabelpad控制标题与图表之间的距离titlelabelpad控制坐标轴标题与坐标轴之间的距离xlabel、ylabel单位文本补充指标单位常放在ylabel中这张图展示了标题样式调整时最常见的几个关注点包括 fontsize、pad 和坐标轴单位。从这张图中可以看出标题字号过小会降低报告感标题距离过近会显得拥挤纵轴标题不带单位则会影响读者理解。因此样式调整不是为了炫技而是为了让图表更清晰、更专业。下面是一个相对规范的写法importmatplotlib.pyplotasplt months[1月,2月,3月,4月,5月,6月]sales[320,390,460,540,620,700]plt.figure(figsize(8,4))plt.plot(months,sales,markero)plt.title(月度销售额趋势,fontsize16,pad16)plt.xlabel(月份,fontsize12,labelpad10)plt.ylabel(销售额万元,fontsize12,labelpad10)plt.grid(axisy,linestyledashed,alpha0.4)plt.tight_layout()plt.show()我自己的习惯是标题字号略大轴标题字号略小纵轴尽量写单位。这样图表放到博客或报告里会比默认样式更稳定。推荐做法如果图表要发给别人看标题字号建议比坐标轴标题大 24 号重点标题不要挤在图表边缘。6. 从 Excel 读取数据后自动生成标题如果只是写一张图手工写标题就够了。但在办公自动化里我们更常见的场景是Excel 数据会变图表也要跟着变标题最好也能自动生成。比如从 Excel 读取“月份”和“工单数量”后脚本可以自动计算最大值、最小值、首尾变化再把这些信息写进标题。这样图表不只是“画出来”而是带着数据结论一起输出。这张图展示了 Excel 数据自动出图的完整思路读取数据生成标题最后形成可交付的分析报告。从这张图中可以看出自动化出图不是单独调用 plt.plot()而是一条完整链路读取数据、清洗数据、生成图表、补充标题、输出报告。真正能在办公中复用的脚本应该考虑这条链路是否完整。下面给一个更贴近办公场景的示例从 Excel 读取数据后自动生成标题。importpandasaspdimportmatplotlib.pyplotaspltfrompathlibimportPath plt.rcParams[font.sans-serif][SimHei]plt.rcParams[axes.unicode_minus]Falsedefplot_with_auto_title(xlsx_path:str,sheet_name:str,x_col:str,y_col:str,out_png:strout/图表标题示例.png):# 1. 读取 Excel 数据dfpd.read_excel(xlsx_path,sheet_namesheet_name)# 2. 取出横轴和纵轴字段xdf[x_col].astype(str)ypd.to_numeric(df[y_col],errorscoerce)# 3. 清理无效数据datapd.DataFrame({x_col:x,y_col:y}).dropna()# 4. 自动计算标题中需要的关键数字first_valuedata[y_col].iloc[0]last_valuedata[y_col].iloc[-1]change_rate(last_value-first_value)/first_value# 5. 根据变化方向自动生成标题ifchange_rate0:title_textf{y_col}整体上升{change_rate:.1%}else:title_textf{y_col}整体下降{change_rate:.1%}# 6. 绘图plt.figure(figsize(8,4))plt.plot(data[x_col],data[y_col],markero)plt.title(title_text,fontsize16,pad16)plt.xlabel(x_col,fontsize12)plt.ylabel(f{y_col}单,fontsize12)plt.grid(axisy,linestyledashed,alpha0.4)plt.xticks(rotation30)plt.tight_layout()# 7. 保存图片out_pngPath(out_png)out_png.parent.mkdir(parentsTrue,exist_okTrue)plt.savefig(out_png,dpi200)plt.close()returnstr(out_png)if__name____main__:png_pathplot_with_auto_title(xlsx_pathreport.xlsx,sheet_name数据,x_col月份,y_col工单数量,out_pngout/案例04_自动标题图表.png)print(图表已生成,png_path)这段代码的重点不是“能不能画线”而是把图表标题从固定文本升级成了**基于数据自动生成的结论文本**。这才是 Python 办公自动化真正有价值的地方把重复操作变成脚本把人工判断的一部分变成可复用逻辑。7. 常见问题与踩坑记录7.1 中文标题显示成方块怎么办这是 Matplotlib 里非常常见的问题。不是 title() 写错了而是当前环境没有正确配置中文字体。可以在脚本开头加入importmatplotlib.pyplotasplt plt.rcParams[font.sans-serif][SimHei]plt.rcParams[axes.unicode_minus]False推荐做法如果后续经常画中文图表可以把这两行固定放在绘图脚本顶部避免每次都排查乱码问题。7.2 纵轴标题到底要不要写单位建议写。尤其是金额、数量、百分比、耗时这类指标不写单位会导致理解偏差。例如plt.ylabel(销售额万元)plt.ylabel(处理耗时分钟)plt.ylabel(满意度%)不要只写“金额”“数量”“时间”。这些词太泛放到正式报告里不够严谨。7.3 标题太长被裁切怎么办标题过长时常见问题是显示不全或和图表挤在一起。可以尝试plt.title(2026上半年工单数量整体下降,fontsize14,pad16)plt.tight_layout()如果标题确实很长我更建议把标题拆成“主标题 注释说明”不要把所有信息都塞到标题里。7.4 标题能不能写结论可以而且我推荐写结论。但前提是这个结论必须来自数据不能凭感觉写。标题可以引导读者理解数据但不能替代数据本身。如果标题写得很刺激但图表并不能支撑这个结论那就是误导。8. 效果验证怎样判断标题设置是否合格我一般用下面 5 个问题来检查图表标题是否合格检查项合格标准图表标题能说明主题最好能表达结论横轴标题能说明横轴维度如月份、日期、部门纵轴标题能说明指标并尽量带单位中文显示不乱码、不显示方块单独阅读图片脱离正文后仍然能看懂大意如果一张图离开正文就看不懂那么这张图在报告里也不够稳。因为真实办公场景中图片经常会被单独转发、截图、放进 PPT 或周报里。我的建议凡是要交付给别人看的图都按照“单图可读”的标准处理。9. 我的总结提升这一节看起来只是学习 plt.title()、plt.xlabel()、plt.ylabel() 三个函数但它背后其实是一个更重要的图表思维**图表不是为了画出来而是为了让别人看懂。**我从这一节带走的核心经验有三点标题是图表的身份证没有标题图表就缺少基本解释能力轴标题是数据的坐标说明横轴说明维度纵轴说明指标和单位结论型标题更适合汇报场景不要只写“趋势图”要写清楚图表真正想表达什么。如果只会画图但不会让图表表达结论那还停留在“会用函数”的阶段。真正可交付的自动化图表应该做到数据来源清楚、标题表达明确、轴标题带单位、图表能脱离正文独立阅读。后续我在写 Python Excel 自动化图表时会默认把标题三件套作为基础规范而不是可选项。因为一张图能不能被别人快速理解往往就差这几行标题代码。返回顶部