当前位置: 首页 > news >正文

Python科研绘图--Task02

目录

图形元素

画布 (fifigure)。

坐标图形 (axes),也称为子图。

轴 (axis) :数据轴对象,即坐标轴线。

刻度 (tick),即刻度对象。

图层顺序

轴比例和刻度

轴比例

刻度位置和刻度格式

坐标系

直角坐标系

极坐标系

地理坐标系

多子图的绘制 

subplot() 函数

add_subplot() 函数

 subplots() 函数

 axes()

 subplot2grid() 函数

 gridspec.GridSpec() 函数

 subplot_mosaic() 函数

常见的图的类型

结果保存


图形元素

  • 画布 (fifigure)

它既可以代表图形本身进行图的绘制(包含图例、图名、数据标记等多个图形艺术对象,又可以 被划分为多个子区域,而每个子区域可用于单独图形类型的 ( 子图 ) 绘制。用户可以在画布 (fifigure) 中设置画布大小(fifigsize)、分辨率(dpi)和背景颜色等其他参数。

  • 坐标图形 (axes),也称为子图。

作为 Matplotlib 的绘图核心,它主要为绘图数据提供展示区域,同时包括组成图的众多艺术对象 (artist)。在大多数情况下,一个画布 (fifigure) 对象中包含一个子图区域,子图区域由上、下、左、右 4 个轴脊以及其他构成子图的组成元素组成。

  • (axis) :数据轴对象,即坐标轴线。

每个轴对象都含有位置( locator )对象和格式(formatter )对象,它们分别用于控制坐标轴刻度的位置和格式。
  • 刻度 (tick),即刻度对象。

刻度对象包括主刻度(Major tick)、次刻度(Minor tick)、主刻度标签(Major tick label)和次刻度标签(Minor tick label)。

图层顺序

Matplotlib 采用的是面向对象的绘图方式。在同一个坐标图形中绘制不同的数据图层时,

Matplotlib 可通过设置每个绘图函数中的 zorder 参数来设定不同的图层。

轴比例和刻度

Matplotlib 中 的每个坐标图形对象至少包含两个轴对象,它们分别用来表示 X 轴和 Y 轴。轴对象还可以控制轴比例(axis scale )、刻度位置( tick locator )和刻度格式( tick formatter )。

轴比例

轴比例规定了数值与给定轴之间的映射方式,即数值在轴上以何种方式进行缩放。Matplotlib 中的默认轴比例方式为线性( linear )方式,其他诸如 log logit symlog 和自定义函数比例(function scale )方式也是常用的轴比例方式。

刻度位置和刻度格式

刻度位置和刻度格式分别规定了每个轴对象上刻度的位置与格式。

坐标系

常见的坐标系有直角坐标系( rectangular coordinate system )、极坐标系( polar coordinate
system )和地理坐标系( geographic coordinate system )。

直角坐标系

Matplotlib 中,我们可通过设置绘图函数(如 add_subplot() )中的参数 projection='3d' 或引入 axes3d 对象来绘制三维直角坐标系。

极坐标系

地理坐标系

Matplotlib 地理坐标系中的地理投影方式较少,仅有 Aitoffff 投影、 Hammer 投影、 Lambert
投影和 Mollweide 投影 4 种。

多子图的绘制 

subplot() 函数

import matplotlib.pyplot as plt
ax1 = plt.subplot(212)
ax2 = plt.subplot(221)
ax3 = plt.subplot(222)

add_subplot() 函数

import matplotlib.pyplot as plt
fig = plt.figure()
ax1 = fig.add_subplot(212)
ax2 = fig.add_subplot(221)
ax3 = fig.add_subplot(222)

 subplots() 函数

fig, axs = plt.subplots(2, 3, sharex=True, sharey=True)
axs[0,0].text(0.5, 0.5, "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)")

 axes()

import numpy as np
import matplotlib.pyplot as plt
from colormaps import parula
np.random.seed(19680801)
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(rect=[0.8, 0.15, 0.05, 0.6])
plt.colorbar(cax=cax)

 subplot2grid() 函数

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))

 gridspec.GridSpec() 函数

import matplotlib.pyplot as plt
import matplotlib.gridspec as gridspec
fig = plt.figure(constrained_layout=True)
gspec = gridspec.GridSpec(ncols=3, nrows=3, figure=fig)
ax1=plt.subplot(gspec[0,:])
ax2=plt.subplot(gspec[1,0:2])
ax3=plt.subplot(gspec[1:,2])
ax4=plt.subplot(gspec[2,0])
ax5=plt.subplot(gspec[-1,-2])

 subplot_mosaic() 函数

def annotate_axes(ax, text, fontsize=fontsize):ax.text(0.5, 0.5, text, transform=ax.transAxes,fontsize=fontsize, alpha=0.75, ha="center",va="center", weight="bold")
fig, axd = plt.subplot_mosaic([['upper left', 'right'],['lower left', 'right']],figsize=(6,3), constrained_layout=True)
for k in axd:annotate_axes(axd[k], f'axd["{k}"]', fontsize=14)

常见的图的类型

结果保存

Matplotlib 绘制的图对象可以保存为多种格式,如 PNG JPG TIFF PDF SVG 等。注意,结果保存函数 savefifig() 必须出现在 show() 函数之前,可避免保存结果为空白等问题。另外,在使用 savefifig() 的过程中,我们需要设置参数 bbox_inches='tight' ,去除图表周围的空白部分。将图对象保存为 PDF 文件和 PNG 文件的示例代码如下。
fig.savefig('结果.pdf',bbox_inches='tight')
fig.savefig('结果.png', bbox_inches='tight',dpi=300)
plt.show()

相关文章:

Python科研绘图--Task02

目录 图形元素 画布 (fifigure)。 坐标图形 (axes),也称为子图。 轴 (axis) :数据轴对象,即坐标轴线。 刻度 (tick),即刻度对象。 图层顺序 轴比例和刻度 轴比例 刻度位置和刻度格式 坐标系 直角坐标系 极坐标系 地理…...

[保研/考研机试] KY11 二叉树遍历 清华大学复试上机题 C++实现

题目链接: 二叉树遍历_牛客题霸_牛客网编一个程序,读入用户输入的一串先序遍历字符串,根据此字符串建立一个二叉树(以指针方式存储)。题目来自【牛客题霸】https://www.nowcoder.com/share/jump/43719512169254700747…...

【官方中文文档】Mybatis-Spring #简介

简介 什么是 MyBatis-Spring? MyBatis-Spring 会帮助你将 MyBatis 代码无缝地整合到 Spring 中。它将允许 MyBatis 参与到 Spring 的事务管理之中,创建映射器 mapper 和 SqlSession 并注入到 bean 中,以及将 Mybatis 的异常转换为 Spring 的…...

稳定扩散ControlNet v1.1 权威指南

ControlNet 是一种稳定扩散模型,可让你从参考图像中复制构图或人体姿势。 经验丰富的稳定扩散用户知道生成想要的确切成分有多难。图像有点随机。你所能做的就是玩数字游戏:生成大量图像并选择你喜欢的图片。 借助 ControlNet,稳定扩散用户…...

【golang】结构体及其方法的使用(struct)

函数是独立的程序实体。我们可以声明有名字的函数,也可以声明没名字的函数,还可以把它们当做普通的值传来传去。我们能把具有相同签名的函数抽象成独立的函数类型,以作为一组输入、输出(或者说一类逻辑组件)的代表。 …...

【数据结构】-- 排序算法习题总结

排序 时间复杂度 空间复杂度 稳定性 冒泡排序 O(n^2) 优化后O(n) O(1) 稳定 快速排序 最好O(n*logn) 最坏O(n^2) 最好O(logn) 最坏O(n) 不稳定直接插入排序…...

第十章 CUDA流(stream)实战篇

cuda教程目录 第一章 指针篇 第二章 CUDA原理篇 第三章 CUDA编译器环境配置篇 第四章 kernel函数基础篇 第五章 kernel索引(index)篇 第六章 kenel矩阵计算实战篇 第七章 kenel实战强化篇 第八章 CUDA内存应用与性能优化篇 第九章 CUDA原子(atomic)实战篇 第十章 CUDA流(strea…...

如何进行电脑文件夹分类与整理?

本科电脑用了四年,毕业后发现空间很满,但是真正有用的东西仿佛就一点。好像是在学开发的时候,听到一个老师说,根目录不要放太多文件夹,不然就相当于没有根目录了。刚好研究生有了新的台式电脑,开始有规划的…...

kafka-python 消费者消费不到消息

排除步骤1: 使用group_id”consumer_group_id_001“ 和 auto_offset_reset"earliest" from kafka import KafkaConsumerconsumer KafkaConsumer(bootstrap_servers["dev-kafka01.test.xxx.cloud:9092"],enable_auto_commitTrue, auto_commit…...

穿起“新架构”的舞鞋,跳一支金融数字化转型的华尔兹

华尔兹,是男女两位舞者,通过形体的控制,舞步技巧的发挥,完美配合呈现而出的一种舞蹈形式。华尔兹舞姿,如行云流水、潇洒自如、飘逸优美,素有“舞中皇后”的美称。 在跳华尔兹的时候,如果舞者双…...

SpringBoot 常用注解

随着Spring及Spring Boot的发展,基于Java的配置已经慢慢替代了基于xml的配置形式。本篇文章为大家整理和简介Spring Boot中常用的注解及其功能。 SpringBoot注解 SpringBootApplication:开启Spring Boot自动配置的核心注解,相关等同于Configu…...

k8s deployment创建pod流程图

参考 k8s 创建pod和deployment的流程 - SoulChild随笔记...

C++ 逗号运算符

使用逗号运算符是为了把几个表达式放在一起。 整个逗号表达式的值为系列中最后一个表达式的值。 从本质上讲,逗号的作用是将一系列运算按顺序执行。 表达式1, 表达式2求解过程是:先求解表达式 1,再求解表达式 2。整个逗号表达式的值是表达…...

jdbc集成phoneix hbase

为什么使用jdbc集成 需求简单,只是往phoneix存储数据原本项目已经有mysql的mybatis plus集成,如果采用dataSource方式就需要采用多数据源的方式,造成架构复杂化,使用复杂化,并且修改地方过多。 Qualifier("phoe…...

16.遍历二叉树,线索二叉树

目录 一. 遍历二叉树 (1)三种遍历方式 (2)递归遍历算法 (3)非递归遍历算法 (4)层次遍历算法 二. 基于递归遍历算法的二叉树有关算法 (1)二叉树的建立 …...

电商平台按关键字搜索商品淘宝京东拼多多api接口PHP示例

关键词搜索商品接口的作用是通过调用接口来实现在电商平台中进行商品搜索。具体而言,该接口可以提供以下功能和作用: 商品搜索:用户可以通过输入关键词,在电商平台上进行商品搜索。接口可以根据关键词对商品的名称、描述、标签等…...

胖小酱之恰恰是什么

意思是:指所指的事物截然不同,正好相反。 恰恰相反的近义词:事与愿违、适得其反 一、事与愿违 [ sh yǔ yun wi ] 【解释】:事实与愿望相反。指原来打算做的事没能做到。 【出自】:茅盾《子夜》十六:不…...

豪越科技受邀出席2023中国算力大会

2023年8月17日-8月20日,“算汇银川 数创未来”创新中国行走进银川暨2023中国算力大会在银川中关村创新中心召开。政府领导、行业领袖、专家学者、以及大型科技企业负责人齐聚大会现场,围绕算力基础设施建设、创新应用和产业发展成果等方面开展广泛交流与…...

python脚本——批量将word文件转换成多张图片

前提:有时候需要快速查看word文档的内容是否自己需要的,或者就是单纯需要将word文档转换成一张张图片。 思路:word文档直接生成图片比较蛮烦,可能会引起格式变化,就先将word文档转换成PDF,然后将PDF文档转…...

FairyGUI编辑器的弹窗操作【插件】

之前在FairyGUI编辑器菜单扩展中,我使用了App.Alert("复制失败")来提示操作是否成功。这篇则会说一下我们可以使用的弹窗提示,以及做到类似资源发布成功时的“发布成功”飘窗。 打开APP的API脚本,可以看到有很多公开方法&#xff…...

《Qt C++ 与 OpenCV:解锁视频播放程序设计的奥秘》

引言:探索视频播放程序设计之旅 在当今数字化时代,多媒体应用已渗透到我们生活的方方面面,从日常的视频娱乐到专业的视频监控、视频会议系统,视频播放程序作为多媒体应用的核心组成部分,扮演着至关重要的角色。无论是在个人电脑、移动设备还是智能电视等平台上,用户都期望…...

HTML 列表、表格、表单

1 列表标签 作用:布局内容排列整齐的区域 列表分类:无序列表、有序列表、定义列表。 例如: 1.1 无序列表 标签:ul 嵌套 li,ul是无序列表,li是列表条目。 注意事项: ul 标签里面只能包裹 li…...

多模态商品数据接口:融合图像、语音与文字的下一代商品详情体验

一、多模态商品数据接口的技术架构 (一)多模态数据融合引擎 跨模态语义对齐 通过Transformer架构实现图像、语音、文字的语义关联。例如,当用户上传一张“蓝色连衣裙”的图片时,接口可自动提取图像中的颜色(RGB值&…...

Linux云原生安全:零信任架构与机密计算

Linux云原生安全:零信任架构与机密计算 构建坚不可摧的云原生防御体系 引言:云原生安全的范式革命 随着云原生技术的普及,安全边界正在从传统的网络边界向工作负载内部转移。Gartner预测,到2025年,零信任架构将成为超…...

NFT模式:数字资产确权与链游经济系统构建

NFT模式:数字资产确权与链游经济系统构建 ——从技术架构到可持续生态的范式革命 一、确权技术革新:构建可信数字资产基石 1. 区块链底层架构的进化 跨链互操作协议:基于LayerZero协议实现以太坊、Solana等公链资产互通,通过零知…...

(转)什么是DockerCompose?它有什么作用?

一、什么是DockerCompose? DockerCompose可以基于Compose文件帮我们快速的部署分布式应用,而无需手动一个个创建和运行容器。 Compose文件是一个文本文件,通过指令定义集群中的每个容器如何运行。 DockerCompose就是把DockerFile转换成指令去运行。 …...

JVM虚拟机:内存结构、垃圾回收、性能优化

1、JVM虚拟机的简介 Java 虚拟机(Java Virtual Machine 简称:JVM)是运行所有 Java 程序的抽象计算机,是 Java 语言的运行环境,实现了 Java 程序的跨平台特性。JVM 屏蔽了与具体操作系统平台相关的信息,使得 Java 程序只需生成在 JVM 上运行的目标代码(字节码),就可以…...

算法:模拟

1.替换所有的问号 1576. 替换所有的问号 - 力扣(LeetCode) ​遍历字符串​:通过外层循环逐一检查每个字符。​遇到 ? 时处理​: 内层循环遍历小写字母(a 到 z)。对每个字母检查是否满足: ​与…...

接口自动化测试:HttpRunner基础

相关文档 HttpRunner V3.x中文文档 HttpRunner 用户指南 使用HttpRunner 3.x实现接口自动化测试 HttpRunner介绍 HttpRunner 是一个开源的 API 测试工具,支持 HTTP(S)/HTTP2/WebSocket/RPC 等网络协议,涵盖接口测试、性能测试、数字体验监测等测试类型…...

Python+ZeroMQ实战:智能车辆状态监控与模拟模式自动切换

目录 关键点 技术实现1 技术实现2 摘要: 本文将介绍如何利用Python和ZeroMQ消息队列构建一个智能车辆状态监控系统。系统能够根据时间策略自动切换驾驶模式(自动驾驶、人工驾驶、远程驾驶、主动安全),并通过实时消息推送更新车…...