【Python数据可视化】Matplotlib从零到精通:图表核心解剖、多子图布局与三大经典图表实战
在数据分析与机器学习领域“字不如表表不如图”。数据可视化不仅能直观呈现数据内在规律更是向业务方交付成果的关键桥梁。Matplotlib作为 Python 数据可视化领域的基石与开山鼻祖也是应用最广泛的绘图库。无论是静态图表、动态交互还是高出版级期刊插图Matplotlib 都能游刃有余地完成。官方网站https://matplotlib.org安装命令pipinstallmatplotlib️ 必备前置彻底解决中文乱码与负号显示问题在使用 Matplotlib 时由于其默认字体不支持中文常会出现方块乱码□□此外负号也可能显示异常。因此在代码头部加入以下两行配置是标准规范importmatplotlib.pyplotasplt# 解决中文显示乱码Windows常用 SimHeiMac常用 Arial Unicode MS 或 PingFang SCplt.rcParams[font.sans-serif][SimHei]# 解决负号 - 显示为方块的问题plt.rcParams[axes.unicode_minus]False 一、 深度拆解Matplotlib 图表的“解剖学”结构要画好一张图必须先理解一张图由哪些部件构成。Matplotlib 将一张图拆分为以下核心层级------------------------------------------------------- | 画布 (Figure) | | ------------------------------------------------- | | | 标题 (Title) | | | | Y轴标签 (Ylabel) [图例 (Legend)] | | | | ^ | | | | | / \ /\ [网格线 (Grid)] | | | | |------------- | | | | | / \/ \ | | | | ------------------------ X轴 (Xaxis) | | | | Y轴刻度/标签 X轴刻度/标签(Xtick_label) | | | | X轴标签 (Xlabel) | | | ------------------------------------------------- | -------------------------------------------------------核心要素对照表组件名称英文术语对应控制 API核心作用画布Figureplt.figure()/plt.subplots()容纳所有视觉元素的顶级容器坐标系/子图Axesfig.add_subplot()/ax真正绘制图表的绘图区域包含X/Y轴标题Titleplt.title()/ax.set_title()图表的总体说明轴线与标签Axis / Labelplt.xlabel(),plt.ylabel()说明坐标轴所代表的物理含义及单位刻度与刻度标签Tick / Tick Labelplt.xticks(),plt.yticks()标定数值位置与具体文本标注图例Legendplt.legend()区分多条曲线或不同类别数据的标注说明网格线Gridplt.grid()辅助肉眼对齐数值和趋势判断 二、 实战演练绘制双城市气温变化曲线下面通过一个双曲线折线图把上述所有图表组件串联整合importmatplotlib.pyplotaspltimportrandom# 1. 解决中文与负号显示plt.rcParams[font.sans-serif][SimHei]plt.rcParams[axes.unicode_minus]False# 2. 准备数据1-24小时北京与西安的气温模拟xrange(1,25)y_beijing[random.randint(10,15)for_inrange(len(x))]y_xa[random.randint(15,19)for_inrange(len(x))]# 3. 绘制折线设置标签 label 用于图例识别plt.plot(x,y_beijing,label北京,color#1f77b4,linewidth2)plt.plot(x,y_xa,label西安,color#ff7f0e,linewidth2)# 4. 图表辅助装饰plt.title(24小时气温变化曲线,fontsize14)plt.xlabel(时间 (小时),fontsize12)plt.ylabel(气温 (℃),fontsize12)# 5. 添加网格线与图例plt.grid(True,linestyle--,alpha0.5)plt.legend(locupper right)# 6. 设置坐标轴刻度及显示范围plt.xticks(x[::2])# X轴每2小时显示一个刻度plt.yticks(range(5,25,2))# Y轴从5℃到25℃步长为2# 7. 渲染输出plt.show() 三、 画布进阶多子图Subplots设计与管理为了能同时展示多个图表便于图表之间数据的直观对比和分析更高效、更专业地组织和呈现复杂的可视化信息通常会在一个画布上创建多个子图。子图核心 APIfigure,axesplt.subplots(nrows1,ncols2,figsize(20,6),dpi100)nrows子图行数ncols子图列数figsize(宽, 高)画布物理尺寸英寸dpi每英寸点数Dots Per Inch控制图像分辨率清晰度axes子图对象数组。如果是一行两列axes[0]代表左图axes[1]代表右图。 四、 三大经典图表选型与实战根据不同的业务场景选用恰当的图表类型图表类型对应 API核心优势黄金应用场景折线图plt.plot()/ax.plot()展示连续数据的趋势变化气温变化、股价走势、时间序列分析柱状图plt.bar()/ax.bar()突出离散类别的数量对比各季度业绩、产品销量对比、各城市营收饼状图plt.pie()/ax.pie()直观展示各部分的占比构成用户画像年龄占比、市场份额、预算配比综合案例在一个画布中联动展示三大图表importmatplotlib.pyplotasplt# 基础设置plt.rcParams[font.sans-serif][SimHei]plt.rcParams[axes.unicode_minus]False# 创建 1 行 3 列的子图画布fig,axesplt.subplots(nrows1,ncols3,figsize(18,5),dpi100)# ----------------- 子图 1折线图趋势变化 -----------------months[1月,2月,3月,4月,5月,6月]sales_trend[120,135,170,160,210,240]axes[0].plot(months,sales_trend,markero,colorb,label月销售额)axes[0].set_title(上半年销售额趋势变化)axes[0].set_xlabel(月份)axes[0].set_ylabel(销售额(万元))axes[0].grid(True,linestyle:,alpha0.6)axes[0].legend()# ----------------- 子图 2柱状图数量对比 -----------------categories[服装,电子产品,食品,家居用品,图书]sales_count[450,310,520,180,240]axes[1].bar(categories,sales_count,color#2ca02c,alpha0.85)axes[1].set_title(各品类销售数量对比)axes[1].set_xlabel(产品类别)axes[1].set_ylabel(销量(件))# ----------------- 子图 3饼状图占比构成 -----------------channels[微信支付,支付宝,现金,银行卡]pay_ratio[45,35,5,15]axes[2].pie(pay_ratio,labelschannels,autopct%1.1f%%,startangle140,colors[#ff9999,#66b3ff,#99ff99,#ffcc99])axes[2].set_title(各支付方式占比构成)# 自动调整子图间距防止重叠plt.tight_layout()plt.show() 五、 核心知识点全景速查表功能模块核心 API / 语法作用说明关键参数 / 示例全局设置plt.rcParams[font.sans-serif]设置中文字体防方块乱码[SimHei]黑体plt.rcParams[axes.unicode_minus]控制负号正常显示False画布与子图plt.subplots(nrows, ncols)创建网格化子图画布figsize(宽, 高),dpi100plt.tight_layout()自动优化子图内边距排版避免标题与轴标签重叠图表组件plt.title()/ax.set_title()设置图表主标题fontsize14plt.xlabel(),plt.ylabel()设置 X/Y 轴标签文字fontsize12plt.xticks(),plt.yticks()设置 X/Y 轴的显示刻度步长plt.xticks(range(0, 10, 2))plt.grid()显示背景参考网格线linestyle--,alpha0.5plt.legend()渲染各数据系列的图例locupper right经典图表plt.plot(x, y)折线图展示随时间/维度的趋势变化color,linewidth,markerplt.bar(x, height)柱状图突出不同组别的数量对比width,alphaplt.pie(x)饼状图展示多部门/类别的比例构成autopct%1.1f%%,labels

相关新闻

ChatGLM-6B 部署与微调完全指南:从环境安装、量化推理到 P-Tuning v2 高效参数微调

ChatGLM-6B 部署与微调完全指南:从环境安装、量化推理到 P-Tuning v2 高效参数微调

大模型人工智能NLP本地部署微调模型推理服务 【免费下载链接】ChatGLM-6B-code ChatGLM-6B: An Open Bilingual Dialogue Language Model | 开源双语对话语言模型 项目地址: https://gitcode.com/zai-org/ChatGLM-6B-code 点击查看 免费下载 导读 ChatGLM-6B 是智…

2026/9/30 6:48:03 阅读更多 →
雨课堂连续播放插件

雨课堂连续播放插件

雨课堂播放完成一个视频后会自动暂停,影响观课体验,故此开发自动播放插件供大家使用。 目录 1.下载篡改猴 2.配置篡改猴 3.下载项目插件 项目已发布: GitHub - yunmengze-star/yuketang-autoplay GitHubContribute to yunmengze-star/yuk…

2026/9/30 6:48:03 阅读更多 →
Linux 内核内存管理(三):深入解析 kmemcheck —— 内核版 Valgrind 的未初始化内存检测机制

Linux 内核内存管理(三):深入解析 kmemcheck —— 内核版 Valgrind 的未初始化内存检测机制

文档教程操作系统 【免费下载链接】linux-insides A book-in-progress about the Linux kernel and its insides. 项目地址: https://gitcode.com/gh_mirrors/li/linux-insides 点击查看 免费下载 kmemcheck 是 Linux 内核提供的内存调试机制,专门用于捕…

2026/9/30 6:48:03 阅读更多 →

最新新闻

YOLOv8+ONNXRuntime+OpenCV:CPU实现目标检测与实例分割

YOLOv8+ONNXRuntime+OpenCV:CPU实现目标检测与实例分割

简介:面向有一定深度学习基础的开发者,这套资源提供了基于YOLOv8的目标检测与实例分割实战项目,使用ONNXRuntime完成高效推理,借助OpenCV处理图像输入输出,覆盖模型加载、预处理、推理到结果可视化的完整链路。压缩包内…

2026/10/1 12:55:00 阅读更多 →
AI就业风口真相:五大热门岗位与零基础转行路线全解析

AI就业风口真相:五大热门岗位与零基础转行路线全解析

这一两年,后台问AI就业的人明显多了。有人看到大模型公司应届生薪资倒挂老员工,有人说自己所在的传统岗位正在被AI工具一点点吞掉,还有一些完全零基础、现在做运营做设计做行政的朋友,也想趁2025到2030这波AI产业周期换一条职业赛…

2026/10/1 12:55:00 阅读更多 →
Hadoop+Django热点新闻分析系统:从环境搭建到可视化完整实战

Hadoop+Django热点新闻分析系统:从环境搭建到可视化完整实战

每年毕设季,我总会收到大量和这个题目高度雷同的消息:老师,我选了基于Hadoop的热点新闻分析系统,Django做后端,但Hadoop怎么装?Django到底怎么跟Hadoop打通?热点新闻的热度到底怎么算&#xff1…

2026/10/1 12:55:00 阅读更多 →
创建型模式实战解析:从选型到避坑的完整指南

创建型模式实战解析:从选型到避坑的完整指南

1. 创建型模式到底在解决什么问题 写业务代码写到一定阶段,你一定会有这种感觉:同一个对象,在十几个地方被 new 出来,参数稍微一变,改得满屏飘红。说到根子上,这是创建型模式缺位造成的。我当年接手过一个老…

2026/10/1 12:55:00 阅读更多 →
阿珊打字通2025:绿色免安装,英文拼音五笔全覆盖打字练习指南

阿珊打字通2025:绿色免安装,英文拼音五笔全覆盖打字练习指南

1. 为什么还要专门练打字注意:文中提到的操作细节,是基于这类桌面端打字练习软件的通用设计做的说明。实际使用版本不同,个别按钮位置可能有差异,但不影响整体流程。先说个现象。这几年用电脑的人越来越多,可打字速度反…

2026/10/1 12:55:00 阅读更多 →
网御星云Power_V堡垒机配置实战:从初始化到审计闭环

网御星云Power_V堡垒机配置实战:从初始化到审计闭环

简介:《网御星云安全系统Power_V功能使用手册》是一份面向安全网关运维人员与网络管理员的功能型参考文档,聚焦防火墙、UTM、IPS、AV等Power V系列产品的进阶配置与典型应用。手册从地址、服务、时间、安全域等基础资源概念切入,逐步讲解地址…

2026/10/1 12:53:59 阅读更多 →

日新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/1 0:00:30 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/1 0:00:30 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/1 1:01:17 阅读更多 →

周新闻

如何划分训练/验证集:Spirula Studio五种eval_mode策略详解

如何划分训练/验证集:Spirula Studio五种eval_mode策略详解

如何划分训练/验证集:Spirula Studio五种eval_mode策略详解 【免费下载链接】spirula-studio Cross-vendor 3D Gaussian Splatting trainer - video to splat to mesh, Vulkan or CUDA. 项目地址: https://gitcode.com/GitHub_Trending/sp/spirula-studio Sp…

2026/9/30 13:14:22 阅读更多 →
SEO怎么推广速查手册新手避坑实战指南

SEO怎么推广速查手册新手避坑实战指南

SEO怎么推广速查手册新手避坑实战指南 模板网站太丑不够用?别急着加滤镜,那是治标不治本。很多老板盯着后台流量掉得眼红,却还在纠结首页Banner的圆角是不是3像素。这就像穿着西装去挖土,姿势不对,努力白费。我整理这份 速查手册…

2026/9/30 18:13:06 阅读更多 →
FireRed-OpenStoryline少样本仿写深度解析:AI Agent如何复刻你的独特文案风格与节奏

FireRed-OpenStoryline少样本仿写深度解析:AI Agent如何复刻你的独特文案风格与节奏

FireRed-OpenStoryline少样本仿写深度解析:AI Agent如何复刻你的独特文案风格与节奏 【免费下载链接】FireRed-OpenStoryline FireRed-OpenStoryline is an AI video editing agent that transforms manual editing into intention-driven directing through natural language …

2026/9/30 13:14:49 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/1 0:00:30 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/1 0:00:30 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/1 1:01:17 阅读更多 →