基于Python科研论文绘制学习 - task2

news2025/1/16 13:52:42

Matplotlib

1、subplot()

matplotlib.pyplot模块提供了一个 subplot() 函数,它可以均等地划分画布,该函数的参数格式如下:
plt.subplot(nrows, ncols, index)
nrows 与 ncols 表示要划分几行几列的子区域(nrows*nclos表示子图数量),index 的初始值为1,用来选定具体的某个子区域。
例如: subplot(233)表示在当前画布的右上角创建一个两行三列的绘图区域(如下图所示),同时,选择在第 3 个位置绘制子图。
在这里插入图片描述

## subplot()
import matplotlib.pyplot as plt
ax1 = plt.subplot(212, title="one")  ## 该写法等于ax1 = plt.subplot(2,1,2);即先把画布分成两行,第一个子图占了第二行;
ax2 = plt.subplot(221, title="two")  ## 把画布分成四份,第二个子图占了左上角第一份
ax3 = plt.subplot(222, title="three")
## 如果新建的子图与现有的子图重叠,那么重叠部分的子图将会被自动删除,因为它们不可以共享绘图区域。
## 如果没有重叠,则可以直接显示。

运行结果(没有子图重叠):
在这里插入图片描述
有子图重叠:
在这里插入图片描述

2、add_subplot()

add_subplot()的使用方法和subplot()类似,不同的是,add_subplot()函数先产生figure对象,然后在该对象的基础上依次添加子图

add_subplot(nrows, ncols, index, **kwargs)

## add_subplot()
import matplotlib.pyplot as plt
fig = plt.figure()
ax1 = fig.add_subplot(212, title="one")
ax2 = fig.add_subplot(221, title="two")
ax3 = fig.add_subplot(222, title="three")

运行结果:
在这里插入图片描述
当有子图重叠时,不会被覆盖:
在这里插入图片描述

3、subplots()

subplots()函数是常见的用于绘制子图的函数。
它的使用方法和 subplot() 函数类似。其不同之处在于,subplots() 既创建了一个包含子图区域的画布,又创建了一个 figure 图形对象,而 subplot() 只是创建一个包含子图区域的画布。

fig , ax = plt.subplots(nrows, ncols, sharex, sharey)
sharex 参数用来设定是否共享 X 轴;该函数会返回一个数组坐标对象,该对象用于每个子图的单独绘制。

## subplots()
import matplotlib.pyplot as plt
fig, axs = plt.subplots(2, 3, sharex = True, sharey = True)
# axs[0,0].text(0.3, 0.3, "subplots(0,0)")
# axs[0,1].text(0.5, 0.5, "subplots(0,1)")
# axs[0,2].text(0.5, 0.5, "subplots(0,2)")
# axs[1,0].text(0.5, 0.5, "subplots(1,0)")
# axs[1,1].text(0.5, 0.5, "subplots(1,1)")
# axs[1,2].text(0.5, 0.5, "subplots(1,2)")
axs[0][0].set_title('subplots(0,0)')
axs[0][1].set_title('subplots(0,1)')
axs[0][2].set_title('subplots(0,2)')
axs[1][0].set_title('subplots(1,0)')
axs[1][1].set_title('subplots(1,1)')
axs[1][2].set_title('subplots(1,2)')

在这里插入图片描述
在这里插入图片描述

4、axes()

axes()函数的主要功能是为当前画布(figure)对象添加坐标图形(axes)对象,使其成为当前坐标图形(axes)对象。需要提供rect参数(一个四元组”left、bottom、width、height)。常见用法是对当前画布对象坐标图形对象添加颜色和大小映射等,或在已有的坐标图形对象上添加另一个坐标图形对象。

import numpy as np
import matplotlib.pyplot as plt
from colormaps import parula
np.random.seed(23333)
plt.subplot(211)
plt.imshow(np.random.random((100,100)), cmap = parula)
plt.subplot(212)
plt.imshow(np.random.random((100,100)), cmap = parula) 
plt.subplots_adjust(bottom = 0.1, right = 0.8, top = 0.9)  ## 调整子图的布局参数
cax = plt.axes([0.8, 0.2, 0.05, 0.6])  ## 设置子图的位置与大小,[左, 下, 宽, 高] 规定的矩形区域
plt.colorbar(cax = cax)  ## 在已有的 axes 上绘制一个Colorbar,颜色条。

在这里插入图片描述

5、subplot2grid()

subplot2grid()函数可以实现不规则多子图绘制。

subplot2grid(shape, loc, rowspan=1/colspan=1)
shape 规定了网格的行数和列数,location 决定子图在网格内的行和列 rowspan或colspan分别规定了每个子图向下跨越的行数和向右跨越的列数。

import matplotlib.pyplot as plt
fig = plt.figure()
ax1 = plt.subplot2grid((3,3), (0,0), colspan = 3)
ax2 = plt.subplot2grid((3,3), (1,0), colspan = 2)
ax3 = plt.subplot2grid((3,3), (1,2), rowspan = 2)
ax4 = plt.subplot2grid((3,3), (2,0))
ax5 = plt.subplot2grid((3,3), (2,1))

在这里插入图片描述

import matplotlib.pyplot as plt
fig = plt.figure()
ax1 = plt.subplot2grid((3,3), (0,0), colspan = 3, rowspan = 2)
ax2 = plt.subplot2grid((3,3), (2,0), colspan = 2)
ax3 = plt.subplot2grid((3,3), (2,2))

在这里插入图片描述

6、gridspec.GridSpec()

用于指定放置子图的网格的几何形状。

gridspec.GridSpec(nrows, ncols, figure=None, left=None, bottom=None, right=None, top=None)
(nrows, ncols)这两个参数一定要有,最后用subplot()具体子图的选择和定制化操作。

常见的图类型

在这里插入图片描述
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/914638.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Jmeter性能 —— 事务控制器

统计性能测试结果一定会关注TPS,TPS表示:每秒处理事务数,JMeter默认每个事务对应一个请求。我们可以用逻辑控制器中的事务控制器将多个请求统计为一个事务。 1、添加事务控制器 2、事务控制器参数说明 Generate parent sample:如…

Spring Framework

文章目录 一 Spring Framework简介 1.1 Spring Framework系统架构 1.2 对spring的理解 1.3 设计理念 二 核心 1. IoC 容器 1.1. Spring IoC容器和Bean简介 1.2. 容器概述 1.2.1. 配置元数据 1.2.2. 实例化一个容器 构建基于XML的配置元数据 Groovy Bean Definitio…

传递函数零极点对系统的影响

传递函数的零点和极点分别对系统的影响的详细介绍: 零点(Zero)的影响:传递函数的零点是使得传递函数的分子为零的点。零点对系统的频率响应和稳定性产生影响。具体而言: 频率响应:零点的位置会影响系统在不…

Linux常用配置(持续记录)

写在前面:学的东西太多,一个健忘的程序猿,只记得那啥那啥,这东西好像是这个,哎,又忘了。现在就记在这个小本本上,方便日后来回顾。 全局配置host 命令: vim /etc/hosts 作用&#…

使用EventLog Analyzer 进行路由器监控

路由器是任何计算机网络的构建块,引导网络中的流量,管理员需要确保路由器已配置并正常工作,以确保网络安全。 监控路由器中的用户活动 在网络安全方面,与路由器相关的风险是一个严重的问题。具有松散安全策略的网络使入侵者可以…

PCI9054入门1:硬件引脚定义、时序、FPGA端驱动源码

文章目录 1:PCI9054的FPGA侧(local侧引脚定义)2:PCI9054的C模式下的读写时序3:FPGA代码部分具体代码: 1:PCI9054的FPGA侧(local侧引脚定义) 而PCI9054的本地总线端的主要…

基于Googlenet深度学习网络的交通工具种类识别matlab仿真

目录 1.算法运行效果图预览 2.算法运行软件版本 3.部分核心程序 4.算法理论概述 5.算法完整程序工程 1.算法运行效果图预览 2.算法运行软件版本 matlab2022a 3.部分核心程序 ....................................................................................% 获…

PHP反序列化 字符串逃逸

前言 最近在打西电的新生赛&#xff0c;有道反序列化的题卡了很久&#xff0c;今天在NSS上刷题的时候突然想到做法&#xff0c;就是利用字符串逃逸去改变题目锁死的值&#xff0c;从而实现绕过 为了研究反序列化的字符串逃逸 我们先简单的测试下 原理 <?php class escape…

大数据——一文熟悉HBase

1、HBase是什么 HBase是基于HDFS的数据存储&#xff0c;它建立在HDFS文件系统上面&#xff0c;利用了HDFS的容错能力&#xff0c;内部还有哈希表并利用索引&#xff0c;可以快速对HDFS上的数据进行随时读写功能。 Hadoop在已经有一个HiveMapReduce结构的数据读写功能&#x…

Apollo自动驾驶:引领未来的智能出行

自动驾驶技术正日益成为当今科技领域的焦点&#xff0c;它代表着未来出行的一大趋势&#xff0c;而Baidu公司推出的Apollo自动驾驶平台则在这一领域中展现出强大的领导地位。本文将深入探讨Apollo自动驾驶技术的关键特点、挑战以及它对未来智能出行的影响。 Apollo自动驾驶平台…

QT基础教程之二 第一个Qt小程序

QT基础教程之二 第一个Qt小程序 按钮的创建 在Qt程序中&#xff0c;最常用的控件之一就是按钮了&#xff0c;首先我们来看下如何创建一个按钮 QPushButton * btn new QPushButton; 头文件 #include <QPushButton>//设置父亲btn->setParent(this);//设置文字btn-&g…

C++进阶 多线程相关

本篇博客介绍&#xff1a; 主要介绍C中的一些线程操作以及线程库 C进阶 多线程相关 为什么要有线程库线程库介绍线程库常见的接口构造线程对象获取线程idjoin和deteach mutex库原子操作相关条件变量库总结 为什么要有线程库 我们在Linux中写多线程的时候使用的是Linux下提供的…

Windows使用MobaXterm远程访问ubuntu20.04桌面

参考ubuntu 2020.4 安装vnc 一、脚本文件 remote_setup.sh脚本文件内容&#xff1a; #! /bin/bash #参考链接&#xff1a;https://blog.csdn.net/hailangdeyingzi/article/details/124507304 sudo apt update sudo apt install x11vnc -y sudo x11vnc -storepasswd telpo.12…

【论文阅读】POIROT:关联攻击行为与内核审计记录以寻找网络威胁(CCS-2019)

POIROT: Aligning Attack Behavior with Kernel Audit Records for Cyber Threat Hunting CCS-2019 伊利诺伊大学芝加哥分校、密歇根大学迪尔伯恩分校 Milajerdi S M, Eshete B, Gjomemo R, et al. Poirot: Aligning attack behavior with kernel audit records for cyber thre…

Apache Paimon 实时数据湖 Streaming Lakehouse 的存储底座

摘要&#xff1a;本文整理自阿里云开源大数据表存储团队负责人&#xff0c;阿里巴巴高级技术专家李劲松&#xff08;之信&#xff09;&#xff0c;在 Streaming Lakehouse Meetup 的分享。内容主要分为四个部分&#xff1a; 流计算邂逅数据湖 Paimon CDC 实时入湖 Paimon 不止…

关于打包多模块SpringBoot项目并通过宝塔上传服务器

打包 —— 如何打包多模块项目&#xff0c;参考b站up主&#xff1a;[喜欢编程的代先生] 的视频 总结&#xff1a;1. 对着视频里看一下父模块和各个子模块pom.xml文件关于打包工具的依赖是否正确。2. 从最底层开始打包&#xff0c;逐层向上&#xff0c;最后再合并打包。 部署 …

网络安全(大厂)面试题

以下为网络安全各个方向涉及的面试题&#xff0c;星数越多代表问题出现的几率越大&#xff0c;祝各位都能找到满意的工作。 注&#xff1a;本套面试题&#xff0c;已整理成pdf文档&#xff0c;但内容还在持续更新中&#xff0c;因为无论如何都不可能覆盖所有的面试问题&#xf…

采购合同有哪些类型?应注意哪些内容?

采购合同为建立和管理客户与供应商的关系奠定了基础。在合同中&#xff0c;卖方同意向买方提供符合特定规格的用品&#xff0c;或承担买方的项目&#xff0c;并提供一个确定的价格&#xff08;通常有批量折扣&#xff09;。 作为回报&#xff0c;买方同意接收并支付一定数量的…

在ubuntu上部署label-studio

1. 安装label-studio 由于服务器的默认python3版本太低&#xff0c;尝试了很多方法&#xff0c;没有升级。因此采用annaconda方式安装label-studio. a.安装anaconda: 参照如下链接&#xff0c;安装anaconda。 Ubuntu安装Anaconda详细步骤&#xff08;Ubuntu22.04.1&#xff…

sql developer 连不上oracle数据库 报错 ORA-01031: insufficient privileges

sql developer 连不上oracle数据库 报错 ORA-01031: insufficient privileges 1、问题描述2、问题原因3、解决方法4、sql developer 连接oracle 成功 1、问题描述 使用sys账户以SYSDBA角色登录失败 报错 ORA-01031: insufficient privileges 2、问题原因 因为没有给sys账户分…