Python库()
1.概念
Matplotlib 库:是一款用于数据可视化的 Python 软件包,支持跨平台运行,它能够根据 NumPy ndarray 数组来绘制 2D 图像,它使用简单、代码清晰易懂

Matplotlib 图形组成:
Figure:指整个图形,您可以把它理解成一张画布,它包括了所有的元素,比如标题、轴线等
Axes:绘制 2D 图像的实际区域,也称为轴域区,或者绘图区
Axis:指坐标系中的垂直轴与水平轴,包含轴的长度大小(图中轴长为 7)、轴标签(指 x 轴,y轴)和刻度标签
Artist:您在画布上看到的所有元素都属于 Artist 对象,比如文本对象(title、xlabel、ylabel)、Line2D 对象(用于绘制2D图像)等
Matplotlib 功能扩展包:许多第三方工具包都对 Matplotlib 进行了功能扩展,其中有些安装包需要单独安装,也有一些允许与 Matplotlib 一起安装。常见的工具包如下:
Basemap:这是一个地图绘制工具包,其中包含多个地图投影,海岸线和国界线
Cartopy:这是一个映射库,包含面向对象的映射投影定义,以及任意点、线、面的图像转换能力
Excel tools: 这是 Matplotlib 为了实现与 Microsoft Excel 交换数据而提供的工具
Mplot3d:它用于 3D 绘图
Natgrid:这是 Natgrid 库的接口,用于对间隔数据进行不规则的网格化处理
2.安装
激活或者创建一个环境,安装 pip install matplotlib
3.应用场景
数据可视化主要有以下应用场景:
企业领域:利用直观多样的图表展示数据,从而为企业决策提供支持
股票走势预测:通过对股票涨跌数据的分析,给股民提供更合理化的建议
商超产品销售:对客户群体和所购买产品进行数据分析,促使商超制定更好的销售策略
预测销量:对产品销量的影响因素进行分析,可以预测出产品的销量走势
4.常用API
4.1 绘图类型
| 函数名称 | 描述 |
|---|---|
| Bar | 绘制条形图 |
| Barh | 绘制水平条形图 |
| Boxplot | 绘制箱型图 |
| Hist | 绘制直方图 |
| his2d | 绘制2D直方图 |
| Pie | 绘制饼状图 |
| Plot | 在坐标轴上画线或者标记 |
| Polar | 绘制极坐标图 |
| Scatter | 绘制x与y的散点图 |
| Stackplot | 绘制堆叠图 |
| Stem | 用来绘制二维离散数据绘制(又称为火柴图) |
| Step | 绘制阶梯图 |
| Quiver | 绘制一个二维按箭头 |
4.2 Image 函数
| 函数名称 | 描述 |
|---|---|
| Imread | 从文件中读取图像的数据并形成数组 |
| Imsave | 将数组另存为图像文件 |
| Imshow | 在数轴区域内显示图像 |
4.3 Axis 函数
| 函数名称 | 描述 |
|---|---|
| Axes | 在画布(Figure)中添加轴 |
| Text | 向轴添加文本 |
| Title | 设置当前轴的标题 |
| Xlabel | 设置x轴标签 |
| Xlim | 获取或者设置x轴区间大小 |
| Xscale | 设置x轴缩放比例 |
| Xticks | 获取或设置x轴刻标和相应标签 |
| Ylabel | 设置y轴的标签 |
| Ylim | 获取或设置y轴的区间大小 |
| Yscale | 设置y轴的缩放比例 |
| Yticks | 获取或设置y轴的刻标和相应标签 |
4.4 Figure 函数
| 函数名称 | 描述 |
|---|---|
| Figtext | 在画布上添加文本 |
| Figure | 创建一个新画布 |
| Show | 显示数字 |
| Savefig | 保存当前画布 |
| Close | 关闭画布窗口 |
5.pylab 模块
PyLab 是一个面向 Matplotlib 的绘图库接口,其语法和 MATLAB 十分相近。
pylab 是 matplotlib 中的一个模块,它将 matplotlib.pyplot 和 numpy 的功能组合在一起,使得你可以直接使用 numpy 的函数和 matplotlib.pyplot 的绘图功能,而不需要显式地导入 numpy 和 matplotlib.pyplot。
优点
方便快捷:pylab 的设计初衷是为了方便快速绘图和数值计算,使得你可以直接使用 numpy 的函数和 matplotlib.pyplot 的绘图功能,而不需要显式地导入 numpy 和 matplotlib.pyplot。
简化代码:使用 pylab 可以减少导入语句的数量,使代码更简洁。
缺点
命名空间污染:pylab 将 numpy 和 matplotlib.pyplot 的功能组合在一起,可能会导致命名空间污染,使得代码的可读性和可维护性降低。
不适合大型项目:对于大型项目或需要精细控制的项目,pylab 可能不够灵活。
pyplot 是 matplotlib 中的一个模块,提供了类似于 MATLAB 的绘图接口。它是一个更底层的接口,提供了更多的控制和灵活性。
使用 pyplot 需要显式地导入 numpy 和 matplotlib.pyplot,代码量相对较多。例如:
import matplotlib.pyplot as plt import numpy as np
6.常用函数
6.1 plot 函数
pylab.plot 是一个用于绘制二维图形的函数。它可以根据提供的 x 和 y 数据点绘制线条和/或标记。
语法:
pylab.plot(x, y, format_string=None, **kwargs)
参数:
x: x 轴数据,可以是一个数组或列表。
y: y 轴数据,可以是一个数组或列表。
format_string: 格式字符串,用于指定线条样式、颜色等。
**kwargs: 其他关键字参数,用于指定线条的属性。
plot 函数可以接受一个或两个数组作为参数,分别代表 x 和 y 坐标。如果你只提供一个数组,它将默认用作 y 坐标,而 x 坐标将默认为数组的索引。
格式字符串:
格式字符串由颜色、标记和线条样式组成。例如:
颜色:
'b':蓝色 'g':绿色 'r':红色 'c':青色 'm':洋红色 'y':黄色 'k':黑色 'w':白色
标记:
'.':点标记
',':像素标记
'o':圆圈标记
'v':向下三角标记
'^':向上三角标记
'<':向左三角标记
'>':向右三角标记
's':方形标记
'p':五边形标记
'*':星形标记
'h':六边形标记1
'H':六边形标记2
'+':加号标记
'x':叉号标记
'D':菱形标记
'd':细菱形标记
'|':竖线标记
'_':横线标记
线条样式:
'-':实线 '--':虚线 '-.':点划线 ':':点线
案例:

警告日志关闭
import logging logging.captureWarnings(True)
6.2 figure 函数
figure() 函数来实例化 figure 对象,即绘制图形的对象,可以通过这个对象,来设置图形的样式等
参数:
figsize:指定画布的大小,(宽度,高度),单位为英寸
dpi:指定绘图对象的分辨率,即每英寸多少个像素,默认值为80
facecolor:背景颜色
dgecolor:边框颜色
frameon:是否显示边框
6.2.1 figure.add_axes()
Matplotlib 定义了一个 axes 类(轴域类),该类的对象被称为 axes 对象(即轴域对象),它指定了一个有数值范围限制的绘图区域。在一个给定的画布(figure)中可以包含多个 axes 对象,但是同一个 axes 对象只能在一个画布中使用。
参数:
是一个包含四个元素的列表或元组,格式为 [left, bottom, width, height],其中:
left 和 bottom 是轴域左下角的坐标,范围从 0 到 1。
width 和 height 是轴域的宽度和高度,范围从 0 到 1。
案例:

6.2.2 axes.legend()
legend 函数用于添加图例,以便识别图中的不同数据系列。图例会自动显示每条线或数据集的标签。
参数:
labels 是一个字符串序列,用来指定标签的名称
loc 是指定图例位置的参数,其参数值可以用字符串或整数来表示
handles 参数,它也是一个序列,它包含了所有线型的实例
案例:

legend() 函数 loc 参数:
| 位置 | 字符串表示 | 整数数字表示 |
|---|---|---|
| 自适应 | best | 0 |
| 右上方 | upper right | 1 |
| 左上方 | upper left | 2 |
| 左下 | lower left | 3 |
| 右下 | lower right | 4 |
| 右侧 | right | 5 |
| 居中靠左 | center left | 6 |
| 居中靠右 | center right | 7 |
| 底部居中 | lower center | 8 |
| 上部居中 | upper center | 9 |
| 中部 | center | 10 |
6.3 标题中文乱码
如果标题设置的是中文,会出现乱码
局部处理:
plt.rcParams['font.sans-serif']=['SimHei'] plt.rcParams['axes.unicode_minus']=False
全局处理:
首先,找到 matplotlibrc 文件的位置,可以使用以下代码:
然后,修改 matplotlibrc 文件,找到 font.family 和 font.sans-serif 项,设置为支持中文的字体,如 SimHei。



同时,设置 axes.unicode_minus 为 False 以正常显示负号。
修改完成后,重启pyCharm。如果不能解决,尝试运行以下代码来实现:
from matplotlib.font_manager import _rebuild _rebuild()
6.4 subplot 函数
subplot 是一个较早的函数,用于创建并返回一个子图对象。它的使用比较简单,通常用于创建网格状的子图布局。subplot 的参数通常是一个三位数的整数,其中每个数字代表子图的行数、列数和子图的索引。
add_subplot 是一个更灵活的函数,它是 Figure类的一个方法,用于向图形容器中添加子图。推荐使用 add_subplot,因为它提供了更好的灵活性和控制。
语法:
fig.add_subplot(nrows, ncols, index)
案例:
6.5 subplots 函数
subplots 是 matplotlib.pyplot 模块中的一个函数,用于创建一个包含多个子图(subplots)的图形窗口。subplots 函数返回一个包含所有子图的数组,这使得你可以更方便地对每个子图进行操作。
语法:
fig, axs = plt.subplots(nrows, ncols, figsize=(width, height))
参数:
nrows: 子图的行数。
ncols: 子图的列数。
figsize: 图形的尺寸,以英寸为单位。
案例:

plt.subplot():适合逐个创建子图,适合简单的子图布局。
plt.subplots():适合一次性创建多个子图,适合复杂的子图布局和统一管理。
7.绘制图表
7.1 柱状图
柱状图(Bar Chart)是一种常用的数据可视化工具,用于展示分类数据的分布情况。
语法:
ax.bar(x, height, width=0.8, bottom=None, align='center', **kwargs)
参数:
x: 柱状图的 X 轴位置。
height: 柱状图的高度。
width: 柱状图的宽度,默认为 0.8。
bottom: 柱状图的底部位置,默认为 0。
align: 柱状图的对齐方式,可以是 'center'(居中对齐)或 'edge'(边缘对齐)。
**kwargs: 其他可选参数,用于定制柱状图的外观,如 color、edgecolor、linewidth 等。
案例1:

案例2:堆叠柱状图

说明:
bottom=values1:绘制第二个数据集的柱状图,堆叠在第一个数据集上
案例3:分组柱状图

7.2 直方图
直方图(Histogram)是一种常用的数据可视化工具,用于展示数值数据的分布情况。
语法:
ax.hist(x, bins=None, range=None, density=False, weights=None, cumulative=False, **kwargs)
参数:
x: 数据数组。
bins: 直方图的柱数,可以是整数或序列。
range: 直方图的范围,格式为 (min, max)。
density: 是否将直方图归一化,默认为 False。
weights: 每个数据点的权重。
cumulative: 是否绘制累积直方图,默认为 False。
**kwargs: 其他可选参数,用于定制直方图的外观,如 color、edgecolor、linewidth 等。
案例:

7.3 饼图
饼图(Pie Chart)是一种常用的数据可视化工具,用于展示分类数据的占比情况。
语法:
ax.pie(x, explode=None, labels=None, colors=None, autopct=None, shadow=False, startangle=0, **kwargs)
参数:
x: 数据数组,表示每个扇区的占比。
explode: 一个数组,表示每个扇区偏离圆心的距离,默认为 None。
labels: 每个扇区的标签,默认为 None。
colors: 每个扇区的颜色,默认为 None。
autopct: 控制显示每个扇区的占比,可以是格式化字符串或函数,默认为 None。
shadow: 是否显示阴影,默认为 False。
startangle: 饼图的起始角度,默认为 0。
**kwargs: 其他可选参数,用于定制饼图的外观。
案例:

7.4 折线图
使用 plot 函数
案例:

7.5 散点图
散点图(Scatter Plot)是一种常用的数据可视化工具,用于展示两个变量之间的关系。
语法:
ax.scatter(x, y, s=None, c=None, marker=None, cmap=None, norm=None, vmin=None, vmax=None, alpha=None, linewidths=None, edgecolors=None, **kwargs)
参数:
x: X 轴数据。
y: Y 轴数据。
s: 点的大小,可以是标量或数组。
c: 点的颜色,可以是标量、数组或颜色列表。
marker: 点的形状,默认为 'o'(圆圈)。
cmap: 颜色映射,用于将颜色映射到数据。
norm: 归一化对象,用于将数据映射到颜色映射。
vmin, vmax: 颜色映射的最小值和最大值。
alpha: 点的透明度,取值范围为 0 到 1。
linewidths: 点的边框宽度。
edgecolors: 点的边框颜色。
**kwargs: 其他可选参数,用于定制散点图的外观。
案例:

marker常用的参数值:
'o': 圆圈
's': 正方形
'D': 菱形
'^': 上三角形
'v': 下三角形
'>': 右三角形
'<': 左三角形
'p': 五边形
'*': 星形
'+': 加号
'x': 叉号
'.': 点
',': 像素
'1': 三叉戟下
'2': 三叉戟上
'3': 三叉戟左
'4': 三叉戟右
'h': 六边形1
'H': 六边形2
'd': 小菱形
'|': 竖线
'_': 横线
7.6 图片读取
plt.imread 是 Matplotlib 库中的一个函数,用于读取图像文件并将其转换为 NumPy 数组。这个函数非常方便,可以轻松地将图像加载到 Python 中进行处理或显示。
参数
fname: 图像文件的路径(字符串)。
format: 图像格式(可选)。如果未指定,imread 会根据文件扩展名自动推断格式。
返回值
返回一个 NumPy 数组,表示图像的像素数据。数组的形状取决于图像的格式:
对于灰度图像,返回一个二维数组 (height, width)。
对于彩色图像,返回一个三维数组 (height, width, channels),其中 channels 通常是 3(RGB)或 4(RGBA)。
案例:
相关文章:
Python库()
1.概念 Matplotlib 库:是一款用于数据可视化的 Python 软件包,支持跨平台运行,它能够根据 NumPy ndarray 数组来绘制 2D 图像,它使用简单、代码清晰易懂 Matplotlib 图形组成: Figure:指整个图形…...
AI知识补全(八):多模态大模型是什么?
名人说:人生如逆旅,我亦是行人。 ——苏轼《临江仙送钱穆父》 创作者:Code_流苏(CSDN)(一个喜欢古诗词和编程的Coder😊) 上一篇:AI知识补全(七):AI Agent 智能…...
复习MySQL20250327
第一章 基本操作 一、管理数据库 难点:创建数据库 输入cmd的MySQL安装路径C:\Program Files\MySQL\MySQL Server 8.0\bin 1.查看所有数据库 show databases; 2.创建数据库 create database hsusers default charset utf8 collate utf8_general_ci;create data…...
Docker-MySQL安装-命令解读-常见命令-数据卷挂载-本地目录挂载-自定义镜像-网络-前端部署-DockerCompose
目录 Docker: 安装MySQL: 镜像容器: 镜像仓库: 编辑命令解读: 镜像命名规范: docker run中常见参数: Docker常见命令: 编辑数据卷: 编辑数据卷-操作命令&…...
Docker 安装部署Harbor 私有仓库
Docker 安装部署Harbor 私有仓库 系统环境:redhat x86_64 一、首先部署docker 环境 定制软件源 wget https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo -O /etc/yum.repos.d/docker-ce.repoyum install -y yum-utils device-mapper-persistent-data lvm2…...
linux基本命令(1)--linux下的打包命令 -- tar 和gzip
tar 解压 ,打包 语法:tar [主选项辅选项] 文件或者目录 使用该命令时,主选项是必须要有的,它告诉tar要做什么事情,辅选项是辅助使用的,可以选用。 主选项: c 创建新的档案文件。如果用户想备…...
Linux 文件系统全解析
笔记整理自 【双语视界】Linux文件系统全解析:从混乱到标准,一览核心目录! 可执行文件目录 /bin(基本系统命令) 包含核心操作系统程序,在系统启动时必须可用,即使没有挂载 /usr 也能运行。 这里…...
StarRocks 存算分离在京东物流的落地实践
康琪:京东物流高级技术专家、StarRocks & Apache Flink Contributor 导读:本文整理自京东物流高级技术专家在 StarRocks 年度峰会上的分享,UData 平台从存算一体到存算分离架构演进后,查询性能得到提升。Cache hit 时…...
英伟达GB300新宠:新型LPDDR5X SOCAMM内存
随着人工智能(AI)、机器学习(ML)和高性能计算(HPC)应用的快速发展,对于高效能、大容量且低延迟内存的需求日益增长。NVIDIA在其GB系列GPU中引入了不同的内存模块设计,以满足这些严格…...
HTML布局
HTML布局元素 <header>定义文档或者节的页眉 <nav>定义导航链接的容器 <section>定义文档中的一部分 <article>定义单独的文章 <aside>定义内容边栏(如侧边栏) footer定义文档或节的页脚 <details>定义额外的细节 …...
vue搭建一个树形菜单项目
首先搭建项目需要先通过步骤搭建一个vue的项目,然后创建一个component文件,里面新建一个index.vue页面来。 这是引入的element-ui组件库里的组件,来实现我的路由,渲染的是我存储的动态路由,所以需要先安装并且引用。 …...
具身智能 - Diffusion Policy:技术解析与应用实践
具身智能之 Diffusion Policy:技术解析与应用实践 一、Diffusion Policy 的核心概念 Diffusion Policy 是一种基于扩散模型(Diffusion Models)的决策生成框架,专为具身智能(Embodied Intelligence)设计。其核心思想是通过逐步去噪的过程,在复杂环境中生成鲁棒的动作序列…...
[C++] 智能指针 进阶
标题:[C] 智能指针 进阶 水墨不写bug 在很久之前我们探讨了智能指针的浅显认识,接下来会更加深入,从源码角度认识智能指针,从而了解智能指针的设计原理,并应用到以后的工作项目中。 本文将会按照C智能指针的发展历史&…...
kubernetes》》k8s》》 kubeadm、kubectl、kubelet
kubeadm 、kubectl 、kubelet kubeadm、kubectl和kubelet是Kubernetes中不可或缺的三个组件。kubeadm负责集群的快速构建和初始化,为后续的容器部署和管理提供基础;kubectl作为命令行工具,提供了与Kubernetes集群交互的便捷方式;而…...
AI日报 - 2025年3月30日
🌟 今日概览(60秒速览) ▎🤖 模型进展 | Qwen2.5-Omni多模态实时交互,Gemini 2.5 Pro/GPT-4o低调升级,Claude内部思考过程揭秘。 新模型和升级持续涌现,多模态与内部机制理解成焦点。 ▎&#x…...
C++中的new、malloc、realloc、calloc——特点?函数原型?释放方式?区别?校招面试常问内容?
作者:求一个demo 版权声明:著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处 内容通俗易懂,没有废话,文章最后是面试常问内容(建议通过标题目录学习) 废话不多…...
27_promise
插入一下前端助手测试,顺手可以用来做安全 promise promise 是一个es6新增的语法 汉语:承诺的意思 作用:是专门用来解决回调地狱!!!! 什么是回调函数? <script>// 回调函数 callback回调// 就是把函数A当作参数传递到函数B中// 在函…...
leetcode刷题日记——跳跃游戏 II
[ 题目描述 ]: [ 思路 ]: 题目要求在一个一定能达到数组末尾的跳跃数组中(见55题 跳跃游戏),找出能够跳到末尾的最小次数要求次数最少,那肯定是选取能选步数中最大的数。也就是在当前能够达到的距离中,选择能够达到的…...
无人机进行航空数据收集对于分析道路状况非常有用-使用无人机勘测高速公路而不阻碍交通-
无人机进行航空数据收集对于分析道路状况非常有用-使用无人机勘测高速公路而不阻碍交通- 瑞士拥有1,400 多公里长的高速公路网络。这些公路将人和货物从山谷高原运送到阿尔卑斯山的最高山口。维护这些高速公路使国家得以顺利运转。高速公路维护的重要性显而易见,但在…...
注意力蒸馏技术
文章目录 摘要abstract论文摘要简介方法预备知识注意力蒸馏损失注意力引导采样 实验结论总结参考文献 摘要 本周阅读了一篇25年二月份发表于CVPR 的论文《Attention Distillation: A Unified Approach to Visual Characteristics Transfer》,论文开发了Attention Distillation…...
PERL开发环境搭建>>Windows,Linux,Mac OS
特点 简单 快速 perl解释器直接对源代码程序解释执行,是一个解释性的语言, 不需要编译器和链接器来运行代码>>速度快 灵活 借鉴了C/C, Basic, Pascal, awk, sed等多种语言, 定位于实用性语言,既具备了脚本语言的所有功能,也添加了高级语言功能 开源.免费 没有&qu…...
赛博威智慧导购平台,融合AI激活一线导购效能,破局增长瓶颈
导购管理≠“管人”,价值释放才是终极命题 在快消行业,一线导购是链接品牌与消费者的核心触点,更是市场洞察与销售转化的关键枢纽。然而,许多企业对导购的管理仍停留在“管人”的初级阶段:基础考勤、任务下发、薪资核…...
鸿蒙项目源码-记账本app个人财物管理-原创!原创!原创!
鸿蒙记账项目源码个人财务管理含文档包运行成功ArkTS语言。 我一个月写的原创作品,请尊重原创。 原创作品,盗版必究!!! api12 SDK5.0.0仅适用于最新的2024版本DevEco studio 共9个页面:广告倒计时页、登录、…...
深入理解 `git pull --rebase` 与 `--allow-unrelated-histories`:区别、原理与实战指南
🚀 git pull --rebase vs --allow-unrelated-histories 全面解析 在日常使用 Git 时,我们经常遇到两种拉取远程代码的方式:git pull --rebase 和 git pull --allow-unrelated-histories。它们的区别是什么?各自适用哪些场景&…...
ExpTimerApcRoutine函数分析之作用是ActiveTimerListHead里面移除定时器_etimer
第一部分: VOID ExpTimerApcRoutine ( IN PKAPC Apc, IN PKNORMAL_ROUTINE *NormalRoutine, IN PVOID *NormalContext, IN PVOID *SystemArgument1, IN PVOID *SystemArgument2 ) /* Routine Description: This function is the special …...
Ovito的python脚本
在 OVITO 里,Python 对象是构建脚本化操作的基础。下面为你详细介绍 OVITO 中 Python 对象的基本概念: 1. 数据管道(Pipeline) 数据管道是 OVITO 里最核心的对象之一。它就像一个流水线,把数据输入进来,经过一系列处理步骤,最后输出处理好的数据。 创建管道:借助 imp…...
【免费】2007-2019年各省地方财政文化体育与传媒支出数据
2007-2019年各省地方财政文化体育与传媒支出数据 1、时间:2007-2019年 2、来源:国家统计局、统计年鉴 3、指标:行政区划代码、地区、年份、地方财政文化体育与传媒支出 4、范围:31省 5、指标说明:地方财政在文化、…...
3PL EDI:SA Piper Logistics EDI需求分析
SA Piper Logistics成立于2005年,是一家专注于全球供应链管理的第三方物流服务商(3PL),总部位于美国芝加哥。公司以“优化物流效率,重塑供应链价值”为使命,提供仓储管理、运输规划、订单履行及跨境清关等一…...
NOIP2007提高组.矩阵取数游戏
题目 492. 矩阵取数游戏 思路 不难发现, 每一行之间是独立的, 因此可以求出每一行的最大值, 然后行与行之间最大值相加, 就是总的最大值 对于行内来说, 每次可以选取左边或者右边, 可以使用区间 d p dp dp求解, 时间复杂度 O ( n 3 ) O(n ^ 3) O(n3), 因为列的最大值是 80 …...
项目实战--权限列表
后端数据: 用表格实现权限列表 const dataSource [{key: 1,name: 胡彦斌,age: 32,address: 西湖区湖底公园1号,},{key: 2,name: 胡彦祖,age: 42,address: 西湖区湖底公园1号,}, ];const columns [{title: 姓名,dataIndex: name,key: name,},{title: 年龄,dataInd…...




