python matplotlib
一、图形函数
| 函数名称 | 描述 |
|---|---|
| Bar | 绘制条形图 |
| Barh | 绘制水平条形图 |
| Boxplot | 绘制箱型图 |
| Hist | 绘制直方图 |
| his2d | 绘制2D直方图 |
| Pie | 绘制饼状图 |
| Plot | 在坐标轴上画线或者标记 |
| Polar | 绘制极坐标图 |
| Scatter | 绘制x与y的散点图 |
| Stackplot | 绘制堆叠图 |
| Stem | 用来绘制二维离散数据绘制(又称为火柴图) |
| Step | 绘制阶梯图 |
| Quiver | 绘制一个二维按箭头 |
二、功能函数
| 函数名称 | 描述 |
|---|---|
| Figtext | 在画布上添加文本 |
| Figure | 创建一个新画布 |
| Show | 显示数字 |
| Savefig | 保存当前画布 |
| Close | 关闭画布窗口 |
三、图形位置函数
1、figure
设置画布,控制图形位置
figsize:指定画布的大小,(宽度,高度),单位为英寸
dpi:指定绘图对象的分辨率,即每英寸多少个像素,默认值为80
facecolor:背景颜色
edgecolor:边框颜色
frameon:是否显示边框
fig = pylab.figure(figsize=(10, 10), facecolor='g', edgecolor='r', frameon=True)
2、figure.add_axes
定义数据轴,根据数据轴锁定图像显示区域;
[left, bottom, width, height]:
left 和 bottom 是轴域左下角的坐标,范围从 0 到 1。
width 和 height 是轴域的宽度和高度,范围从 0 到 1。
ax1 = fig.add_axes([0.1, 0.1, 0.4, 0.4]) ax2 = fig.add_axes([0.5, 0.5, 0.4, 0.4])

3、axes.legend
添加图例,自动显示每条线或数据集的标签;。
labels 若在图形生成中设置了,在这里面无需设置labels,若无则 labels =["标签1,'标签2'],若无括号,就自动拆分字符串。
loc 指定标签显示在轴域的位置
handles 不填默认此轴域内的所有图形,单个填写时 handles = 图形,多个则 handles =[图形1,图形2]
ax1.legend( loc='upper right', labels=['x^2', 'x'])

| 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 |
4、add_subplot
fig.add_subplot(nrows, ncols, index);将画布分为多块区域,图形根据index放入指定位置
ax1 = fig.add_subplot(2, 2, 1) 表示将画布分为两行两列的四个区域,此图为第一个区域(类似第二象限)
ax2 = fig.add_subplot(2, 2, 3) 表示将画布分为两行两列的四个区域,此图为第三个区域(类似第三象限)

5、subplots
格式:fig, axs = plt.subplots(nrows, ncols, figsize=(width, height))
subplot 是根据大小锁定在画布的某块区域,需要一个个确定图形的区域,当设置的区域格式不一致时,图形大小也随着变化导致看上去怪异。
subplots 直接将画布分割成 nrows *ncols 的矩形区域,在创建图形时直接通过行索引和列索引确定位置。
fig, axs = plt.subplots(2, 3, figsize=(18, 8)) 将画布分割成两行三列的六块区域。
axs[0, 0].plot(x, y1, label='sin(x)') #生成图像在第一块区域
axs[1, 2].plot(x, y3, label='tan(x)') #生成图像在第六块区域

6、subplot2gird
格式:ax = plt.subplot2grid(shape, loc, rowspan=1, colspan=1)
shape: 网格的形状,格式为 (rows, cols),表示网格的行数和列数,在figure中式全局设置。
loc: 子图的起始位置,格式为 (row, col),表示子图在网格中的起始行和列。
rowspan: 子图占据的行数,默认为 1。
colspan: 子图占据的列数,默认为 1。
ax1 = plt.subplot2grid((3, 3), (0, 0)) #表示占据三行三列,从原点出发的图像
ax4 = plt.subplot2grid((2, 2), (1, 1)) #表示占据两行两列,从第二行第二列的交织点出发的图像
7、grid
根据横轴和纵轴的值生成网格。

8、xscale 和 yscale
坐标轴默认根据数据情况(一般为整数或小数数值)设置刻度,可以使用 xscale 修改 横坐标 刻度, yscale 修改 纵坐标 刻度。
ax1.set_xscale('log')
ax1.set_yscale('log')

9、set_xlim 和 set_ylim
调整坐标轴的取值范围;格式:ax.set_xlim(left, right) 、ax.set_ylim(bottom, top)
left 和 right:X 轴的范围,left 是 X 轴的最小值,right 是 X 轴的最大值。
bottom 和 top: Y 轴的范围,bottom 是 Y 轴的最小值,top 是 Y 轴的最大值。
ax1.set_xlim(0,2*np.pi) ax1.set_ylim(-3, 3)

10、set_xticks 和 set_yticks
调整坐标轴上的刻度个数和数据;
ax1.set_xticks([0, 2, 4, 6, 8, 10]) ax1.set_yticks([-1, -0.5, 0, 0.5, 1])

11、twinx 和 twiny 函数
多个图形之间共享坐标轴:twinx 表示 横坐标,twiny 表示纵坐标。
ax2 = ax1.twinx() ax2 = ax1.twiny()

四、图形展示
1、plot 线性图
格式:pylab.plot(x, y, format_string=None, **kwargs);format_string: 格式字符串,用于指定线条样式、颜色等。
'b':蓝色 'g':绿色 'r':红色 'c':青色 'm':洋红色 'y':黄色 'k':黑色 'w':白色
'.':点标记 ',':像素标记 'o':圆圈标记 'v':向下三角标记 '^':向上三角标记 '<':向左三角标记 '>':向右三角标记 's':方形标记 'p':五边形标记 '*':星形标记 'h':六边形标记 1 'H':六边形标记 2 '+':加号标记 'x':叉号标记 'D':菱形标记 'd':细菱形标记 '|':竖线标记 '_':横线标记
'-':实线 '--':虚线 '-.':点划线 ':':点线

2、Bar 柱状图
格式: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 等。
ax.bar(x, y, align='center') ax.bar(x, y1, bottom=y)

x = ['A', 'B', 'C', 'D']
y = [20, 30, 15, 40]
y1 = [30, 20, 35, 10]fig, ax = plt.subplots()
ax.bar(x, y, align='center')
ax.bar(x, y1, bottom=y)plt.show() 3、
3、hist 直方图
格式: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 等。
ax.hist(data, bins=150)

data = np.random.randn(10000)
fig, ax = plt.subplots()
ax.hist(data, bins=150)
plt.show()
4、pie 饼图
格式: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: 其他可选参数,用于定制饼图的外观。
ax.pie(y, labels=x, startangle=90, autopct='%1.1f%%')

x = ['A', 'B', 'C', 'D']
y = [2, 3, 4, 5]
fig, ax = plt.subplots()
ax.pie(y, labels=x, startangle=90, autopct='%1.1f%%')
plt.show()
5、Scatter 散点图
格式:ax.scatter(x, y, s=None, color=None, marker=None, cmap=None, norm=None, vmin=None, vmax=None, alpha=None, linewidths=None, edgecolors=None, **kwargs):x: X 轴数据;y: Y 轴数据;s 点的大小,可以是标量或数组;color: 点的颜色,可以是标量、数组或颜色列表;marker 点的形状,默认为 'o'(圆圈);cmap: 颜色映射,用于将颜色映射到数据;norm: 归一化对象,用于将数据映射到颜色映射;vmin, vmax: 颜色映射的最小值和最大值;alpha: 点的透明度,取值范围为 0 到 1;linewidths: 点的边框宽度;edgecolors: 点的边框颜色;**kwargs: 其他可选参数,用于定制散点图的外观。
axes.scatter(x, y0, color='red', s=100, marker='o')

'o': 圆圈 's': 正方形 'D': 菱形 '^': 上三角形 'v': 下三角形 '>': 右三角形
'<': 左三角形 'p': 五边形 '*': 星形 '+': 加号 'x': 叉号 '.': 点 ',': 像素
'1': 三叉戟下 '2': 三叉戟上 '3': 三叉戟左 '4': 三叉戟右
'h': 六边形1 'H': 六边形2 'd': 小菱形 '|': 竖线 '_': 横线
相关文章:
python matplotlib
一、图形函数 函数名称描述Bar绘制条形图Barh绘制水平条形图Boxplot绘制箱型图Hist绘制直方图his2d绘制2D直方图Pie绘制饼状图Plot在坐标轴上画线或者标记Polar绘制极坐标图Scatter绘制x与y的散点图Stackplot绘制堆叠图Stem用来绘制二维离散数据绘制(又称为火柴图&…...
秋招面试题记录_半结构化面试
c八股(可能问的多一点) 1.简单说说C11语法特性 答: 1.auto以及decltype自动类型推导,避免手动声明复杂类型,减少冗长代码提升了可读性和安全性。 2.智能指针 自动释放内存 (具体说说) 有shared和unique 差异主要体现在所有权、内存开销、…...
Java项目-基于springboot框架的疫苗接种管理系统项目实战(附源码+文档)
作者:计算机学长阿伟 开发技术:SpringBoot、SSM、Vue、MySQL、ElementUI等,“文末源码”。 开发运行环境 开发语言:Java数据库:MySQL技术:SpringBoot、Vue、Mybaits Plus、ELementUI工具:IDEA/…...
Android 12.0进程保活白名单功能实现
在Android 12.0系统中,实现进程保活白名单功能是为了确保某些重要的应用程序即使进入后台也能长时间保持运行状态,不被系统自动杀死。这一功能的实现涉及多个核心类和文件,以下是具体的实现步骤和核心功能分析: 一、实现步骤 …...
vscode 功能、设置备忘
2024年10月18日 crtl p 按文件名搜索,输入> 开始搜索命令 设置文件显示过滤和搜索过滤: ctrlp 输入 >settings 选择Preferences:Open Settings(UI),搜索exclude 配置 Files Exclude 修改显示过滤 配置 Search Exclude 修…...
错误 Failed to connect to xx.xx.xx.xx port xx: No route to host
Failed to connect to xx.xx.xx.xx port xx: No route to host 系统环境: Oracle Cloud(OCI)Ubuntu20.4 问题: 连接本机IP正常访问,连接内网ip可正常访问,但连接外网IP报错:Failed to conne…...
Redis环境的搭建
Redis环境的搭建可以分为Linux系统和Windows系统两种情况。 一、Linux系统下Redis的搭建 1. 安装前准备 确保Linux系统已安装GCC环境,可以使用yum install gcc-c命令安装。下载Redis安装包,例如redis-6.2.6.tar.gz,并将其上传到Linux服务器…...
Git Push(TODO)
最近经常碰到GIT push不上去的问题。到处求人解决也真是尴尬,想自己看看,所以刚刚在github上建了一个仓,试了下。结果如下: 暂时可能还不行,因为数据都是加密的,没法看到具体GIT的交互信息。。。 后面再想办…...
Java工具类--截至2024常用http工具类分享
1. Apache HttpClient Apache HttpClient是一个功能强大的、灵活的HTTP客户端,用于发送请求和接收响应。它支持HTTP/1.1和HTTP/2协议,并且提供了丰富的配置选项。适用于需要高度可配置性和扩展性的场景。 2.OkHttp OkHttp是一个高效的HTTP客户端&…...
C#学习笔记(五)
C#学习笔记(五) 第 三 章 基本语句以及语法一、控制台的基本语句使用1. 方法重载2. 输入输出3.字符串格式化 二、赋值运算符、算数运算符、比较运算符三、数据类型转换常用方法使用、比较和选择1. 自动类型转换(隐式转换)2. 强制类型转换2.1 数值类型之间…...
视频云存储/音视频流媒体视频平台EasyCVR视频汇聚平台在欧拉系统中启动失败是什么原因?
视频监控/视频集中存储/磁盘阵列EasyCVR视频汇聚平台具备强大的拓展性和灵活性,支持多种视频流的外部分发,如RTMP、RTSP、HTTP-FLV、WebSocket-FLV、HLS、WebRTC、fmp4等,这为其在各种复杂环境下的部署提供了便利。 安防监控EasyCVR视频汇聚平…...
spring源码中的,函数式接口,注解@FunctionalInterface
调用方 /org/springframework/beans/factory/support/AbstractBeanFactory.java:333sharedInstance getSingleton(beanName, () -> {try {return createBean(beanName, mbd, args);}catch (BeansException ex) {// Explicitly remove instance from singleton cache: It mi…...
分布式系统中的Session共享:实现跨服务器的用户登录信息同步
引言 在现代Web应用中,分布式架构已经成为主流。随着业务规模的扩大,单台服务器往往难以承载所有的请求,因此需要多台服务器协同工作来提供服务。然而,在这种分布式环境中,如何确保用户的登录状态能够在不同的服务器之…...
【LeetCode每日一题】——1588.所有奇数长度子数组的和
文章目录 一【题目类别】二【题目难度】三【题目编号】四【题目描述】五【题目示例】六【题目提示】七【题目进阶】八【解题思路】九【时间频度】十【代码实现】十一【提交结果】 一【题目类别】 前缀和 二【题目难度】 简单 三【题目编号】 1588.所有奇数长度子数组的和 …...
自定义多级联动选择器指南(uni-app)
多端支持:可以运行在H5、APP、微信小程序还是支付宝小程序,都可以轻松使用改组件。自定义配置:您可以根据需要配置选择器的级数,使其适应不同的数据结构和用例。无限级联:此组件支持无限级联选择,使您能够创…...
RHCE笔记-SSH服务
一.对称加密与非对称加密 1.1对称加密 1. 原理 对称加密是指加密和解密使用相同的密钥。也就是说,发送方和接收方在通信之前需要共享一个秘密密钥,使用这个密钥对数据进行加密和解密。 2. 常见算法 AES (Advanced Encryption Standard):…...
java实现文件分片上传并且断点续传
文章目录 什么是断点续传后端实现JAVA实现大文件分片上传断点续传 什么是断点续传 用户上传大文件,网络差点的需要历时数小时,万一线路中断,不具备断点续传的服务器就只能从头重传,而断点续传就是,允许用户从上传断线的地方继续传…...
leetcode hot100 之【LeetCode 15. 三数之和】 java实现
LeetCode 15. 三数之和 题目描述 给你一个包含 n 个整数的数组 nums,判断 nums 中是否存在三个元素 a,b,c 使得 a b c 0?请你找出所有和为 0 且不重复的三元组。 注意: 答案中的三元组可以按任意顺序组织。在 n…...
mysql学习教程,从入门到精通,sql序列使用(45)
sql序列使用 在SQL中,序列(Sequence)是一种数据库对象,用于生成唯一的数值,通常用于自动递增的主键。不同的数据库管理系统(DBMS)对序列的支持和语法可能有所不同。以下是一些常见的DBMS&#…...
Java 中的异常处理、常见异常、如何自定义异常类、Checked 和 Unchecked 异常的区别、如何处理数据库事务中的异常
文章目录 1. 异常的基本概念与处理方法定义常见异常类补充说明: 异常处理方法示例 2.如何自定义异常类步骤示例 3. Java 中的 Checked 和 Unchecked 异常的区别Checked 异常Unchecked 异常示例 4. 如何处理数据库事务中的异常常见场景处理方式示例讨论 总结 异常是指…...
浅谈不同二分算法的查找情况
二分算法原理比较简单,但是实际的算法模板却有很多,这一切都源于二分查找问题中的复杂情况和二分算法的边界处理,以下是博主对一些二分算法查找的情况分析。 需要说明的是,以下二分算法都是基于有序序列为升序有序的情况…...
Maven 概述、安装、配置、仓库、私服详解
目录 1、Maven 概述 1.1 Maven 的定义 1.2 Maven 解决的问题 1.3 Maven 的核心特性与优势 2、Maven 安装 2.1 下载 Maven 2.2 安装配置 Maven 2.3 测试安装 2.4 修改 Maven 本地仓库的默认路径 3、Maven 配置 3.1 配置本地仓库 3.2 配置 JDK 3.3 IDEA 配置本地 Ma…...
DeepSeek 技术赋能无人农场协同作业:用 AI 重构农田管理 “神经网”
目录 一、引言二、DeepSeek 技术大揭秘2.1 核心架构解析2.2 关键技术剖析 三、智能农业无人农场协同作业现状3.1 发展现状概述3.2 协同作业模式介绍 四、DeepSeek 的 “农场奇妙游”4.1 数据处理与分析4.2 作物生长监测与预测4.3 病虫害防治4.4 农机协同作业调度 五、实际案例大…...
R语言速释制剂QBD解决方案之三
本文是《Quality by Design for ANDAs: An Example for Immediate-Release Dosage Forms》第一个处方的R语言解决方案。 第一个处方研究评估原料药粒径分布、MCC/Lactose比例、崩解剂用量对制剂CQAs的影响。 第二处方研究用于理解颗粒外加硬脂酸镁和滑石粉对片剂质量和可生产…...
Python基于历史模拟方法实现投资组合风险管理的VaR与ES模型项目实战
说明:这是一个机器学习实战项目(附带数据代码文档),如需数据代码文档可以直接到文章最后关注获取。 1.项目背景 在金融市场日益复杂和波动加剧的背景下,风险管理成为金融机构和个人投资者关注的核心议题之一。VaR&…...
Kubernetes 节点自动伸缩(Cluster Autoscaler)原理与实践
在 Kubernetes 集群中,如何在保障应用高可用的同时有效地管理资源,一直是运维人员和开发者关注的重点。随着微服务架构的普及,集群内各个服务的负载波动日趋明显,传统的手动扩缩容方式已无法满足实时性和弹性需求。 Cluster Auto…...
2025年- H71-Lc179--39.组合总和(回溯,组合)--Java版
1.题目描述 2.思路 当前的元素可以重复使用。 (1)确定回溯算法函数的参数和返回值(一般是void类型) (2)因为是用递归实现的,所以我们要确定终止条件 (3)单层搜索逻辑 二…...
Canal环境搭建并实现和ES数据同步
作者:田超凡 日期:2025年6月7日 Canal安装,启动端口11111、8082: 安装canal-deployer服务端: https://github.com/alibaba/canal/releases/1.1.7/canal.deployer-1.1.7.tar.gz cd /opt/homebrew/etc mkdir canal…...
【2D与3D SLAM中的扫描匹配算法全面解析】
引言 扫描匹配(Scan Matching)是同步定位与地图构建(SLAM)系统中的核心组件,它通过对齐连续的传感器观测数据来估计机器人的运动。本文将深入探讨2D和3D SLAM中的各种扫描匹配算法,包括数学原理、实现细节以及实际应用中的性能对比,特别关注…...
虚拟机网络不通的问题(这里以win10的问题为主,模式NAT)
当我们网关配置好了,DNS也配置好了,最后在虚拟机里还是无法访问百度的网址。 第一种情况: 我们先考虑一下,网关的IP是否和虚拟机编辑器里的IP一样不,如果不一样需要更改一下,因为我们访问百度需要从物理机…...
