当前位置: 首页 > 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…...

从F1 90到62 F1 90:用Wireshark和CANoe‘解剖’一次完整的UDS 0x22数据读取会话

从F190到62F190:用Wireshark和CANoe解剖UDS 0x22数据读取会话 当你第一次在Wireshark中看到22服务请求和62响应报文时,那些十六进制字节可能就像天书一样难以理解。但正是这些看似杂乱的数据流,承载着现代汽车电子系统最核心的诊断信息交换。…...

三相三电平Vienna整流器:SPWM与SVPWM调制仿真及控制策略对比分析

三相三电平vienna整流器SPWM和SVPWM调制仿真 基于plecs搭建 温度场分析 双PI控制 锁相环控制 中点电压平衡控制 功率因数为1 SPWM和SVPWM调制对比 谐波畸变率对比分析 电压利用率对比分析 电压平衡和不平衡控制对比 图1 仿真模型 图2 温度场分析 图3 交流电压电流三电平…...

Seelen-UI架构深度解析:5个高效定制技巧打造专业级Windows桌面环境

Seelen-UI架构深度解析:5个高效定制技巧打造专业级Windows桌面环境 【免费下载链接】Seelen-UI The Fully Customizable Desktop Environment for Windows 10/11. 项目地址: https://gitcode.com/GitHub_Trending/se/Seelen-UI Seelen-UI作为Windows平台上的…...

HTTP自动化测试架构:基于QD框架的HAR模板规模化治理策略

HTTP自动化测试架构:基于QD框架的HAR模板规模化治理策略 【免费下载链接】templates 基于开源新版 QD 框架站发布的公共har模板库,仅供示例 项目地址: https://gitcode.com/GitHub_Trending/templa/templates 在当今云原生和微服务架构盛行的时代…...

如何利用多渠道SEO推广提高网站流量

<h2>多渠道SEO推广&#xff1a;如何提高网站流量</h2> <p>在当前竞争激烈的互联网环境中&#xff0c;网站流量是衡量网站成功与否的重要指标之一。如何利用多渠道SEO推广提高网站流量&#xff0c;成为了每一个网站运营者关注的焦点。本文将从问题分析、原因说…...

Umi-OCR无界面服务化启动指南:将OCR能力无缝集成到自动化工作流

Umi-OCR无界面服务化启动指南&#xff1a;将OCR能力无缝集成到自动化工作流 【免费下载链接】Umi-OCR Umi-OCR: 这是一个免费、开源、可批量处理的离线OCR软件&#xff0c;适用于Windows系统&#xff0c;支持截图OCR、批量OCR、二维码识别等功能。 项目地址: https://gitcode…...

实战指南:Whisper 的 `prompt` 与 `initial_prompt` 参数在语音转文字中的高效应用

1. Whisper 语音转文字的核心参数解析 第一次用 Whisper 做语音转文字时&#xff0c;我发现同样的音频文件&#xff0c;同事转出来的结果总比我的准确率高。后来才发现&#xff0c;原来他偷偷用了一个叫 prompt 的秘密武器。这就像考试时的"小抄"&#xff0c;给模型…...

Qwen3-Embedding-4B快速上手:5分钟部署,体验119语种向量化

Qwen3-Embedding-4B快速上手&#xff1a;5分钟部署&#xff0c;体验119语种向量化 1. 认识Qwen3-Embedding-4B 1.1 什么是文本向量化&#xff1f; 想象你走进一家大型图书馆&#xff0c;面对成千上万本书籍。如果让你手动查找与"人工智能"相关的书籍&#xff0c;你…...

SVN检出报错大全:从E170011到E120106的实战解决手册(附cleanup的正确用法)

SVN检出报错实战指南&#xff1a;从E170011到E120106的深度解析与解决方案 引言&#xff1a;SVN检出报错的常见场景与应对思路 在团队协作开发中&#xff0c;版本控制系统扮演着至关重要的角色。作为集中式版本控制的代表&#xff0c;SVN&#xff08;Subversion&#xff09;至今…...

试盘Z之主力操盘线

试盘K&#xff0c;以满足特定条件后对该K线标注为试盘字样方便查看。同时通达对9日最低值与9日最高值进行EMA移动平均&#xff0c;得出主力操盘线&#xff01;试盘Z源码:X_1:REF(EMA((HLC)/3,9),1);X_2:EMA(HHV(HIGH,9),3);X_3:EMA(LLV(LOW,9),3);主力操盘线:EMA(X_1*2-X_3,5),…...