Python数据分析:Matplotlib 绘图练习
带你手把手读懂这段超详细的 Matplotlib 绘图代码大家好呀今天不讲理论不堆概念我们就逐行拆解一段完整的 Matplotlib 代码看看高手是怎么把一张图画得既专业又好看的这段代码绘制了经典的sin(x)和cos(x)函数图像还加了注释、标记、填充区域、坐标轴美化……堪称“教科书级”示例。更重要的是——代码一行都不能删每一行都有它的作用准备好了吗我们从头开始一步一步来✅ 第一步导入库 中文支持import matplotlib.pyplot as plt import numpy as np # 全局配置中文字体与负号显示 plt.rcParams[font.sans-serif] [SimHei] plt.rcParams[axes.unicode_minus] Falsematplotlib.pyplot是绘图核心numpy用来生成数学数据。下面两行是解决中文显示问题的经典配置SimHei黑体让图中的中文正常显示axes.unicode_minusFalse避免负号显示成方框比如-π变成 □π。❝ 如果你用 Mac可能要把SimHei换成Arial Unicode MS或PingFang SC。✅ 第二步创建画布# 创建画布与坐标轴推荐写法 fig, ax plt.subplots(figsize(10, 6))使用plt.subplots()是现代 Matplotlib 的推荐写法比直接用plt.plot()更灵活。figsize(10, 6)设置图像宽高为 10×6 英寸避免图形太小看不清。✅ 第三步生成数据# 生成数据 x np.linspace(-np.pi, np.pi, 256, endpointTrue) y1 np.sin(x) # sin(x) y2 np.cos(x) # cos(x)linspace在 $[-π, π]$ 区间生成 256 个均匀点足够平滑。y1和y2分别是正弦和余弦函数值。✅ 第四步画两条曲线# 绘制曲线 ax.plot(x, y1, b-, lw2.5, label正弦 sin(x)) ax.plot(x, y2, r-, lw2.5, label余弦 cos(x))b-表示蓝色实线r-是红色实线lw2.5让线条更粗视觉效果更好label用于后面生成图例legend。✅ 第五步设置坐标轴范围# 设置坐标轴范围 ax.set_xlim(x.min() * 1.5, x.max() * 1.5) ax.set_ylim(y2.min() * 1.5, y2.max() * 1.5)X 轴左右多留点空白乘以 1.5Y 轴同理避免曲线贴边。✅ 第六步自定义刻度标签用 LaTeX# 设置刻度与标签LaTeX 格式 ax.set_xticks([-np.pi, -np.pi/2, 0, np.pi/2, np.pi]) ax.set_xticklabels([r$-\pi$, r$-\pi/2$, r$0$, r$\pi/2$, r$\pi$]) ax.set_yticks([-1, 0, 1])手动指定 X 轴的关键位置-π, -π/2, ..., π用r$...$写LaTeX 数学符号让标签变成漂亮的公式Y 轴只标 -1, 0, 1简洁明了。✅ 第七步把坐标轴移到原点十字交叉# 移动坐标轴到原点十字交叉 ax.spines[right].set_color(none) ax.spines[top].set_color(none) ax.xaxis.set_ticks_position(bottom) ax.spines[bottom].set_position((data, 0)) ax.yaxis.set_ticks_position(left) ax.spines[left].set_position((data, 0))这是最酷的一步默认坐标轴在边框但这里隐藏了右边和上边的边框set_color(none)把 X 轴移到 Y0 的位置Y 轴移到 X0 的位置最终形成过原点的十字坐标系数学感拉满✅ 第八步加标题 签名彩蛋# 添加标题和签名文本 ax.set_title(绘图示例之 cos(x) sin(x), fontsize16, colorgreen) ax.text(2.1, -1.4, -To be number.wan, fontsize10, colorpurple)标题用绿色居中显示右下角加了一行紫色小字“-To be number.wan”像是作者的个性签名 ✅ 第九步显示图例# 图例 ax.legend(locupper left, fontsize12)根据前面label自动生成图例放在左上角upper left字体大小 12。✅ 第十步标记关键点 添加注释# 标记关键点并添加注释 t1 -np.pi t2 2 * np.pi / 3 # 散点标记 ax.scatter([t1], [np.cos(t1)], s50, colorb) ax.scatter([t2], [np.sin(t2)], s50, colorr) # 注释sin(2π/3) ax.annotate(r$\sin(\frac{2\pi}{3})\frac{\sqrt{3}}{2}$, xy(t2, np.sin(t2)), xycoordsdata, xytext(10, 30), textcoordsoffset points, fontsize14, arrowpropsdict(arrowstyle-, connectionstylearc3,rad.2)) # 注释cos(-π) ax.annotate(r$\cos(-\pi)-1$, xy(t1, np.cos(t1)), xycoordsdata, xytext(0, -40), textcoordsoffset points, fontsize14, arrowpropsdict(arrowstyle-, connectionstylearc3,rad.2))用scatter在特定点画小圆点annotate添加带箭头的注释内容还是 LaTeX 公式xytext控制注释文本的位置偏移arrowprops设置箭头样式rad.2让箭头带点弧度更美观。✅ 第十一步填充特殊区域高阶技巧# 填充区域 # 区域1 ax.fill_between(x, np.abs(x) 0.5 , y1 , y10.5 , colorg, alpha0.8, labelsin(x)0.5 |x|0.5) # 区域2 mask2 (-2.5 x) (x -0.5) ax.fill_between(x, y2, wheremask2, colorpurple, alpha0.5, labelcos(x) in [-2.5, -0.5])⚠️ 注意第一行fill_between的写法其实有误参数顺序不对但你要求不改代码我们就照着解释。实际意图是区域1想填充满足|x| 0.5且sin(x) 0.5的部分但当前写法可能无效区域2正确填充了x ∈ [-2.5, -0.5]区间内的 cos(x) 曲线下方面积半透明紫色。❝ 小建议如果真要实现区域1应写成ax.fill_between(x, 0.5, y1, where(np.abs(x)0.5) (y10.5), ...)但既然你强调“不要改代码”我们就尊重原样✅ 第十二步放大刻度字体 加网格# 设置刻度字体大小 for label in ax.get_xticklabels() ax.get_yticklabels(): label.set_fontsize(18) # 网格与显示 ax.grid(True) plt.tight_layout() # 自动调整布局防止标签被裁剪 plt.show()刻度数字放大到 18 号投影/截图都清晰grid(True)显示背景网格方便读数tight_layout()防止标题、标签被裁掉最后plt.show()弹出图像 成果展示运行这段代码你会得到一张这样的图十字坐标轴穿过原点正弦蓝、余弦红曲线清晰标注关键点带公式注释有填充区域、网格、图例、中文标题连作者签名都有这已经不是“能画出来”而是“能拿去交作业/汇报”的级别了 结语Matplotlib 的魅力就在于基础简单上限极高。今天这段代码看似复杂其实每一步都是常用技巧的组合。建议你复制代码运行一遍逐行注释/取消注释看效果变化尝试修改颜色、范围、公式做出自己的版本❝记住所有可视化高手都是从模仿开始的。如果你觉得这篇推文有帮助欢迎点赞、在看、转发给需要的朋友也欢迎留言告诉我你还想拆解哪段代码我们下期见

相关新闻

花小钱取悦自己,才是最聪明的养生

花小钱取悦自己,才是最聪明的养生

别等花大钱看病才懂:花小钱取悦自己,是最划算的养生 目录 别等花大钱看病才懂:花小钱取悦自己,是最划算的养生一、先理清:观点的核心逻辑是什么?二、靠谱依据:情绪影响健康,有实打实…

2026/5/17 1:43:10 阅读更多 →
飞致云开源社区月度动态报告(2026年1月)

飞致云开源社区月度动态报告(2026年1月)

自2023年6月起,中国领先的开源软件公司飞致云以月度为单位发布《飞致云开源社区月度动态报告》,旨在向广大社区用户同步飞致云旗下系列开源软件的发展情况,以及当月的产品新版本发布、社区运营成果等相关信息。 飞致云开源运营数据概览&…

2026/5/17 1:43:08 阅读更多 →
合同模块新增回款记录、工商抬头管理和发票记录功能,Cordys CRM发布v1.5.0版本

合同模块新增回款记录、工商抬头管理和发票记录功能,Cordys CRM发布v1.5.0版本

2026年1月29日,Cordys CRM开源AI CRM系统正式发布v1.5.0版本。 该版本的Cordys CRM系统在合同模块新增“回款记录”功能,支持用户系统化管理客户的回款全流程。同时,合同模块还新增了“工商抬头管理”功能和“发票记录”功能,支持…

2026/5/17 1:43:08 阅读更多 →

最新新闻

视觉语言模型VLM演进三轴:对齐、训练与推理的工业实践

视觉语言模型VLM演进三轴:对齐、训练与推理的工业实践

1. 这不是一场技术发布会,而是一次视觉与语言的“认知进化”现场复盘 如果你最近翻过顶会论文、刷过AI社区热帖,或者只是在手机里试过几个新出的多模态App,大概率已经撞见过“VLM”这个词——Vision Language Model,视觉语言模型…

2026/7/2 21:27:30 阅读更多 →
告别虚拟机!C#工控服务容器化实战:部署效率提升90%的架构重构之路

告别虚拟机!C#工控服务容器化实战:部署效率提升90%的架构重构之路

前言:当老师傅遇到新运维 做过工业现场交付的朋友应该都有体会:代码写得好好的,一到现场就“水土不服”。 我们团队负责的一套工业数据采集与通信中间件,过去三年一直采用传统的Windows Server IIS/控制台程序部署模式。每次项目…

2026/7/2 21:27:29 阅读更多 →
2026视频去水印软件推荐:电脑手机免费付费工具,解析网站安全测评

2026视频去水印软件推荐:电脑手机免费付费工具,解析网站安全测评

在日常刷短视频、整理学习素材、收藏优质自媒体内容的过程中,很多人都会遇到视频自带水印、logo遮挡画面的问题。想要留存高清无水印素材用于个人收藏和学习,就需要靠谱的视频去水印工具。2026年市面上的去水印工具种类繁多,涵盖微信小程序、…

2026/7/2 21:25:29 阅读更多 →
ChatGPT Agent自动化工作流性能优化实战:TPS提升4.8倍、延迟压降至≤320ms、错误率降至0.07%的11项硬核调优策略

ChatGPT Agent自动化工作流性能优化实战:TPS提升4.8倍、延迟压降至≤320ms、错误率降至0.07%的11项硬核调优策略

更多请点击: https://codechina.net 第一章:ChatGPT Agent自动化工作流性能优化全景图 构建高响应、低延迟、可扩展的ChatGPT Agent自动化工作流,需从模型调用、状态管理、工具编排、缓存策略与可观测性五个维度协同优化。单一环节的调优无法…

2026/7/2 21:23:28 阅读更多 →
0.1mm级精密穿丝的路径规划与控制算法解析

0.1mm级精密穿丝的路径规划与控制算法解析

在电火花线切割这个行当里,穿丝这件事,外行人听起来可能觉得就是把一根钼丝从一个孔穿过去,有什么难的?但真正在车间里干过的人就知道,当目标孔径只有0.1毫米级别的时候,这根直径往往也在0.18毫米上下的钼丝…

2026/7/2 21:23:28 阅读更多 →
家电故障排查先看这几步

家电故障排查先看这几步

在射阳,不少家庭遇到家电故障时第一反应是慌乱报修,其实做好基础排查既能节省时间,也能帮维修人员更快定位问题。比如上周就有邻居因为冰箱不制冷直接打电话,结果发现是插头松了,拧紧就好了。日常家电出现小故障时&…

2026/7/2 21:23:28 阅读更多 →

日新闻

Path of Building PoE2:5步掌握流放之路2角色构建的终极免费工具

Path of Building PoE2:5步掌握流放之路2角色构建的终极免费工具

Path of Building PoE2:5步掌握流放之路2角色构建的终极免费工具 【免费下载链接】PathOfBuilding-PoE2 项目地址: https://gitcode.com/GitHub_Trending/pa/PathOfBuilding-PoE2 还在为《流放之路2》复杂的角色构建而头疼吗?面对上千个天赋节点…

2026/7/2 19:10:19 阅读更多 →
SSH密钥生成原理与跨平台安全实践指南

SSH密钥生成原理与跨平台安全实践指南

1. 为什么今天还必须亲手生成 SSH 密钥——不是“过时操作”,而是安全基建的起点你可能已经点开过几十次 GitHub 的 SSH 设置页,也见过终端里一闪而过的ssh-keygen -t ed25519 -C "your_emailexample.com"命令,但真正理解它在 macO…

2026/7/2 19:10:19 阅读更多 →
GAN工程化实战:从图像合成到物理建模的工业落地路径

GAN工程化实战:从图像合成到物理建模的工业落地路径

1. 项目概述:当GAN不再只是“画图玩具”,它正在悄悄重构现实世界的生产逻辑“Astonishing GAN Applications”——这个标题乍看像科技展会的宣传语,但在我过去三年深度参与17个GAN落地项目的实操经验里,它根本不是修辞&#xff0c…

2026/7/2 19:12:20 阅读更多 →

周新闻

月新闻