python---之plt.subplot画图详解

2023-10-27

转载:https://www.cnblogs.com/nju2014/p/5620776.html

【Matplotlib】详解图像各个部分

首先一幅Matplotlib的图像组成部分介绍。

在matplotlib中,整个图像为一个Figure对象。在Figure对象中可以包含一个或者多个Axes对象。每个Axes(ax)对象都是一个拥有自己坐标系统的绘图区域。所属关系如下:

下面以一个直线图来详解图像内部各个组件内容:

其中:title为图像标题,Axis为坐标轴, Label为坐标轴标注,Tick为刻度线,Tick Label为刻度注释。各个对象关系可以梳理成以下内容:

图像中所有对象均来自于Artist的基类。

上面基本介绍清楚了图像中各个部分的基本关系,下面着重讲一下几个部分的详细的设置。

一个"Figure"意味着用户交互的整个窗口。在这个figure中容纳着"subplots"。

当我们调用plot时,matplotlib会调用gca()获取当前的axes绘图区域,而且gca反过来调用gcf()来获得当前的figure。如果figure为空,它会自动调用figure()生成一个figure, 严格的讲,是生成subplots(111)

Figures

Subplots

plt.subplot(221) # 第一行的左图
plt.subplot(222) # 第一行的右图
plt.subplot(212) # 第二整行
plt.show()

注意:其中各个参数也可以用逗号,分隔开。第一个参数代表子图的行数;第二个参数代表该行图像的列数; 第三个参数代表每行的第几个图像。

另外:fig, ax = plt.subplots(2,2),其中参数分别代表子图的行数和列数,一共有 2x2 个图像。函数返回一个figure图像和一个子图ax的array列表。

补充:gridspec命令可以对子图区域划分提供更灵活的配置。

Tick Locators

Tick Locators 控制着 ticks 的位置。比如下面:

ax = plt.gca()
ax.xaxis.set_major_locator(eval(locator))

一些不同类型的locators:

代码如下:

import numpy as np
import matplotlib.pyplot as plt


def tickline():
plt.xlim(0, 10), plt.ylim(-1, 1), plt.yticks([])
ax = plt.gca()
ax.spines['right'].set_color('none')
ax.spines['left'].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('none')
ax.xaxis.set_minor_locator(plt.MultipleLocator(0.1))
ax.plot(np.arange(11), np.zeros(11))
return ax

locators = [
'plt.NullLocator()',
'plt.MultipleLocator(1.0)',
'plt.FixedLocator([0, 2, 8, 9, 10])',
'plt.IndexLocator(3, 1)',
'plt.LinearLocator(5)',
'plt.LogLocator(2, [1.0])',
'plt.AutoLocator()',
]

n_locators = len(locators)

size = 512, 40 * n_locators
dpi = 72.0
figsize = size[0] / float(dpi), size[1] / float(dpi)
fig = plt.figure(figsize=figsize, dpi=dpi)
fig.patch.set_alpha(0)


for i, locator in enumerate(locators):
plt.subplot(n_locators, 1, i + 1)
ax = tickline()
ax.xaxis.set_major_locator(eval(locator))
plt.text(5, 0.3, locator[3:], ha='center')

plt.subplots_adjust(bottom=.01, top=.99, left=.01, right=.99)
plt.show()

所有这些locators均来自于基类matplotlib.ticker.Locator。你可以通过继承该基类创建属于自己的locator样式。同时matplotlib也提供了特殊的日期locator, 位于matplotlib.dates.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

python---之plt.subplot画图详解 的相关文章

  • Requirement already satisfied 解决方法

    python m pip install urllib3 upgrade pip 出现 Requirement already satisfied 解决方法 加上路径即可 跟新pip python m pip install target
  • 2.Python简介、特点、安装配置、pip包管理命令

    Python简介 Python 语言 语言 人与人之间交流需要语言 比如说汉语 英语 编程语言就是人与机器交流的语言 面向过程往面向对象的过渡 例 C C C sharp Java是面向对象 面向过程 面向过程可以认为是流程 一步一步操作
  • Python中的【if __name__=='__main__':】

    1 Java和C 的程序入口 Java的程序入口Main函数 public static void Main string args 方法体 C 的程序入口Main函数 public static void Main string args
  • Python3爬虫学习——urlib库笔记

    Python3爬虫学习 urllib库 前言 本笔记仅个人认知和见解 水平有限 还请见谅 内容大多来自Python文档和学习材料 作相应的扩充或压缩后的笔记 没有很多实例 大多是理论知识 文章目录 Python3爬虫学习 urllib库 前
  • Numpy基础数据结构

    Numpy基础数据结构 NumPy数组是一个多维数组对象 称为ndarray 其由两部分组成 实际的数据 描述这些数据的元数据 Numpy Python开源的科学计算工具包 高级的数据编程工具 ndarray 是强大的N维数组对象 对数据结
  • python学习笔记——hashlib模块

    上篇 https blog csdn net qq 42489308 article details 89813895 hashlib Hash 译做 散列 也有直接音译为 哈希 的 把任意长度的输入 通过某种hash算法 变换成固定长度的
  • 【Python_Selenium学习笔记(三)】基于Selenium模块实现无界面模式 & 执行JS脚本(把滚动条拉到底部)

    基于Selenium模块实现无界面模式 执行JS脚本 把滚动条拉到底部 前言 此篇文章主要介绍如何使用 Selenium 模块实现 无界面模式 执行JS脚本 把滚动条拉到底部 并以具体的示例进行展示 正文 1 Selenium 设置无界面模
  • (董付国)Python 学习笔记---Python面向对象程序设计(3)

    6 4 2 案例精选 例6 1 自定义数组 在MyArray py文件中 定义了一个数组类 重写了一部分特殊方法以支持数组之间 数组与整数之间的四则运算以及内积 大小比较 成员测试和元素访问等运算符 class MyArray 在内部封装
  • anaconda换清华镜像源(Windows)

    第一步 在C Users 用户名 下输入如下图所示的命令 conda config set show channel urls yes 第二步 在下图路径 找到如下图蓝色标记的文件 第三步 用记事本打开上一步找到的文件 将里面的内容完全替换
  • 线性回归模型及K-score归一化方法Python3实现杂文

    Python3 线性回归模型及K score归一化方法实现 前言 本文是博主参考吴恩达的机器学习课程记录的杂文笔记 主要内容是线性回归的代码实现和K score归一化方法的代码实现 以及线性回归的主要公式内容 鉴于博主水平 如有错误 请帮忙
  • 用python实现一个简单的语音录入转换文字的程序

    依赖安装 pip install SpeechRecognition 脚本代码 py import speech recognition as sr 初始化语音识别器 r sr Recognizer 开始录音 with sr Microph
  • python之logging模块详解

    python之 logging 模块 文章目录 python之 logging 模块 一 日志关概念 日志的作用 日志的等级 3 日志字段信息与日志格式 4 日志功能的实现 二 logging 模块介绍 什么是logging模块 loggi
  • Python3学习实战——用类实现简单的猜拳游戏

    Python3学习实战 用类实现简单的猜拳游戏 前言 本笔记仅个人认知和见解 水平有限 还请见谅 如有错误 还请指出 若有想法 欢迎共享 内容不代表最优解决方案 甚至可能不是很好的方法 仅供参考 文章目录 Python3学习实战 用类实现简
  • [Pandas]Dataframe中的多条件切片为什么不能使用and运算符

    对于Dataframe中同一列 如果有多个条件 则不能使用and运算符 需要使用 位运算符 示例如下 import pandas as pd df pd DataFrame name a a b b classes 1 2 3 4 pric
  • pandas对文本数据进行长度统计

    在NLP的各项任务中 都需要对语料的长度有一个概括性的了解 例如平均长度 最大长度 大多数语料的长度范围等 以此来确定输入模型时的最大文本长度 pandas库有一种写法可以快速的统计文本语料的长度情况 pd pandas Series po
  • python学习笔记(1)之如何在python3.x下安装PIL、numpy以及matplotlib

    本人是大菜鸟一枚 也是第一次动手写博客 希望能够通过写博客总结自己学到的知识 同时得到与大牛们交流的机会 本人所写的内容仅是自己的一点学习总结 若有不对的地方 欢迎大家的批评指正 安装python3 5 2 python3 5 x的下载路径
  • python学习笔记——条件判断

    上篇 https blog csdn net qq 42489308 article details 89388218 条件判断 条件判断是通过一条或多条判断语句的执行结果 True或者False 来决定执行的代码块 在Python语法中
  • Python3爬虫——用Xpath提取网页信息

    Python3爬虫 用Xpath提取网页信息 前言 本笔记用于记录整理requests库的一些基本知识 内容会根据博主自己的认知作增添或压缩 水平有限 如有错误请不吝赐教 本文需要读者初步了解HTML有关节点的相关知识 文章目录 Pytho
  • 字母大小写转换(python实现)

    python实现大小写转换主要用lower和upper函数 lower 将字符串中的所有大写字母转化为小写字母 upper 将字符串中的所有小写字母转化为大写字母 s input 输入一个字符串 print s upper 输入 i lov
  • Failed to create CUDAExecutionProvider 使用onnxruntime-gpu未成功调用gpu

    最近在使用GPU对onnx模型进行加速过程中 仅针对N卡 毕竟也没有别的显卡了 遇到了点问题 就是明明在安装了合适版本的显卡驱动和CUDA后 onnx还是不能够成功调用GPU 并且还出现了先导入torch 再导入onnxruntime就可以

随机推荐

  • pyecharts画饼形图,圆形图,环形图(含百分比显示)【python干货】

    很多做数据分析可视化的朋友总会遇到一些烦恼 用pyecharts绘制饼形图 圆形图 的时候 总会报错 废话不多说 下面跟着小编上车吧 教你用pyecharts绘制饼形图 圆形图 环形图从小白到精通 1 饼形图 圆形图 导入模块 from p
  • Oracle11g客户端的安装及配置

    笔记 安装包下载路径 http pan baidu com s 1i31gqTf 一 解压缩之后 点击setup 运行 会弹出一个黑框 耐心等待几秒之后 按照如下地址下一步配置即可 http www 2cto com database 20
  • Sublime Text无法找到Install Package

    问题描述 使用Sublime Text时 ctrl shift p输入Install Package命令失败 解决方案 需要安装Package Control包 进入Package Control安装网站 Installation Pack
  • JAVA学习-限量算法

    一 限流基础知识介绍 为啥要限流 相信就不用我多说了 比如 我周末去饭店吃饭 但是人太多了 我只能去前台拿个号 等号码到我的时候才能进饭店吃饭 如果饭店没有限流怎么办 一到饭点 人都往里冲 而饭店又处理不了这么多人流 很容易就出事故 饭店塞
  • 日志存储

    文件目录布局 一个分区副本在节点上对应一个log文件夹 同时kafka为了防止文件过大引入了logSegment概念 将log切分成了多个logSegment 相当于将一个大文件切分成多个小文件 logSegment又对应磁盘上多个文件 一
  • [云原生专题-64]:云原生技术助力5G RAN步入”云”霄 - 对云原生的理解

    作者主页 文火冰糖的硅基工坊 文火冰糖 王文兵 的博客 文火冰糖的硅基工坊 CSDN博客 本文网址 https blog csdn net HiWangWenBing article details 123084611 目录 一 在后5G时
  • 5G新基建 边缘计算乘风破浪

    2019年6月6日 工信部向中国电信 中国移动 中国联通 中国广电发放5G商用牌照 这意味着中国正式进入5G元年 一年以来 随着基站的建设与用户认知的提升 5G应用如雨后春笋般涌现 而在今年上半年频繁被提及的 新基建 中 5G也将作为通信网
  • Java启动报错记录

    Java启动报错记录 错误现象起源 APPLICATION FAILED TO START Description Parameter 0 of constructor in com xz unity busi question servi
  • string深拷贝的传统与现代写法

    include
  • 运维工程师之-MySQL的故障问题总结

    故障类问题 你在日常工作中遇到过什么故障 你在日常工作中处理过什么故障 你平常工作都干什么活 故障01 mysql时软件版本选择错误 每一个故事的背后都有一个事故 每个故障总结一个故事 软件版本 64位 32位选择错误 故障02 安装故障
  • Java 树结构 TreeNode 表格 工具类

    记录 目录 记录 前言 一 TreeNode 通用树结构使用 1 创建TreeNode树结构基础类 2 创建通用树结构构建类 二 使用步骤 1 通过调用构建类返回树结构 2 测试 总结 前言 本文档基于若依框架编写 项目地址 https g
  • 如何熟练地配置和微调 MacBook Pro 的显示屏幕

    点击右上角 关注 我们 获取更多前沿科技信息 本文共613字 阅读全文约2分钟 关键字 MacBook MacBookPro 苹果系统 Apple 苹果的新款14英寸和16英寸 MacBook Pro 专为专业人士打造 许多的美工或设计师会
  • ChatExcel来了

    chatgpt是一个语言模型 在语言类任务中表现非常好 但是ChatGPT在精准的数据逻辑上表现一般 问chatgpt一些简单的数据处理问题 chatgpt一般还能回答 但chatgpt每次输出的内容有限 日常的数据量至少几百行 这个量级的
  • 应用npm workspace 维护多git仓库的package.json

    1 背景 在大型项目中 随着功能迭代 代码越来越重 需要抽离公用的组件作为子仓库来引用 git submodules 在项目中拥有多个包 每个包的package json较难维护 使用npm workspace可以解决这个问题 2 npm
  • Spring Security OAuth2.0(五)-----OAuth2实现自定义统一认证登录页/自定义授权页/基于mysql存储数据

    本次实例涉及三个项目 核心项目工程unify authorization server 认证授权登录 资源服务器项目unify resource server 测试项目是前面几篇写的项目 这里没有改动直接用来测试实例项目 一 unify a
  • 区块链中的签名怎么签?

    想知道更多区块链技术知识 请百度 链客区块链技术问答社区 链客 有问必答 明星的签名在粉丝的眼中视若无价 生意场上的签名被视为不可抵赖 而在区块链中 数字签名 也是一个独一无二的数值 如今网络环境愈发宽泛 大量的信息通过网络传播留下痕迹 人
  • ACCESS中用SUM()函数的精度问题

    链接来自 https zhidao baidu com question 74046761 html 我在access中使用sum函数时也遇到了该问题 明明数据表中存储的数据是两位小数 通过select value from t table
  • 佐美人--arm32/64/openwrt文件系统移植

    为了让不在OpenWrt项目支持列表中的ARM机器快速使用OpenWrt 可以用替换rootfs的简易方法进行移植 首先 确保你的ARM盒子有能正常使用的Linux系统 并且最好有良好的社区支持 可以去armbian寻找有开源支持的开发板
  • TS泛型用法

    泛型 可以理解为更广泛的类型 也就是说我们在函数 接口 类等中 约束数据类型的时候 可以通过泛型的方式来实现类型的传参 让数据的类型也可以根据传递的类型值来控制 一 函数中的泛型 1 定义泛型函数 基础语法 function 函数名 lt
  • python---之plt.subplot画图详解

    转载 https www cnblogs com nju2014 p 5620776 html Matplotlib 详解图像各个部分 首先一幅Matplotlib的图像组成部分介绍 在matplotlib中 整个图像为一个Figure对象