python画图|坐标轴比例设置方法

【1】引言

在前序学习进程中,我们通过ax.set_box_aspect()函数掌握了坐标轴等比例设置方法。

担当我在回顾以前的学习文章时,发现ax.axis()函数也可以设置坐标轴比例,比如下述文章,文章可通过点击链接直达:

python画图|我的曲线长毛毛了(TickedStroke patheffect)-CSDN博客

这里面通过下方代码实现了坐标轴等比例设置:

ax.axis('equal') #约定X轴和Y轴的范围一致

为此我继续开展学习,并将学习成果和大家共享。

【2】官网教程

首先在matplotlib官网进行检索,搜索到相关页面如下:

https://matplotlib.org/stable/api/axis_api.html#module-matplotlib.axis

对此我尝试挑选了一下可能相关的内容units,毕竟如果单位一致,变化比例应该一致:

图1

找到units模块,其实没有特殊的说明,就是简单的对坐标轴单位进行设置:

图2

对于这种情况,最佳方案就是直接测试程序。

【3】程序测试

【3.1】ax.axis('equal')代码测试

输入以下代码,发现输出标准圆形:

import matplotlib.pyplot as plt #引入画图模块
import numpy as np #引入计算模块
from numpy.ma.core import equalfig,ax=plt.subplots() #定义画图t=np.linspace(0,6.28,500) #定义自变量参数
r=1 #定义常量
x=r*np.cos(t) #定义第一个因变量参数
y=r*np.sin(t) #定义第二个因变量参数ax.axis('equal')
#ax.set_box_aspect('2')
#ax.fill(x,y)
ax.plot(x,y) #绘制参数化图形
ax.set_title('Draw a circle-aixmls')
plt.show() #输出图形

 

图3

【3.2】ax.units()代码测试

顺着units帮助教程的指引,我们会找到示例页面:

matplotlib.axis.Axis.set_units — Matplotlib 3.9.2 documentation

在这里我们发现示例只是设置了X轴和Y轴的单位,为此跟随输入下方代码:

ax.xaxis.set_units(cm)
ax.yaxis.set_units(cm)

运行程序发现报错,因为要安装 basic_units模块才可以。

对此,尝试安装basic_units模块未成功,因此暂不谈论。

【3.3】ax.set_box_aspect( )代码测试

在前序测试的基础上,我们回到ax.set_box_aspect( )函数。

首先在函数括号中输入1(具体代码:ax.set_box_aspect( 1‘’),其余类似),得到标准的圆形。

然后在函数括号中输入2,得到下图:

图4

由图4可见,X轴的比例是Y轴的两倍。

然后在函数括号中输入0.5,得到下图:

 

图5

由图4可见,Y轴的比例是X轴的两倍。  

【4】代码干扰测试

根据前述测试结果,ax.axis( )和ax.set_box_aspect( )都可以实现标准圆输出。

为测试稳定性,将这两个函数同时使用:

ax.axis('equal')
ax.set_box_aspect('1')

运行代码后的输出结果与图3一致。

之后修改下面行代码为:ax.set_box_aspect('2')

运行后的输出图像为图4。

也就是:坐标轴比例可能会以后一个为准,但这种比例只是坐标轴输出的范围,而不是坐标轴本身在相同长度上所代表的数值范围。

然后尝试交换两个函数的位置:

ax.set_box_aspect('2')
ax.axis('equal')

 此时的输出依然与图4一致。

然后修改下面行代码为:ax.axis('auto')

此时的输出图像为图6:

图6

 对比图像可知:

ax.set_box_aspect()函数控制坐标轴输出的范围的比例,而不是坐标轴本身在相同长度上所代表的数值大小的比例。

ax.axis()函数控制坐标轴本身在相同长度上所代表的数值大小的比例。

【5】总结

辨析了控制坐标轴比例的函数功能。

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

[前端][基础]JavaScript

1,JavaScript简介 JavaScript 是一门跨平台、面向对象的脚本语言,而Java语言也是跨平台的、面向对象的语言,只不过Java是编译语言,是需要编译成字节码文件才能运行的;JavaScript是脚本语言,不需要编译&…

用于文档理解的局部特征

本文介绍了一种名为DocFormerv2的多模态Transformer模型,它专为视觉文档理解(VDU)而设计。该模型可以处理视觉、语言和空间特征,利用编码器-解码器架构,并通过不对称地使用新颖的无监督任务进行预训练,以促…

Chromium127编译指南 Linux篇 - 额外环境配置(五)

引言 在成功获取 Chromium 源代码后,接下来我们需要配置适当的编译环境,以便顺利完成开发工作。本文将详细介绍如何设置 Python 和相关的开发工具,以确保编译过程无碍进行。这些配置步骤是开发 Chromium 的必要准备,确保环境设置…

HTTP相关返回值异常原因分析,第二部分

今天我们讲讲HTTP相关返回值异常如何解决(实例持续更新中) 一、4xx状态码 这些状态码表示请求有问题,通常是由于客户端的错误引起的。 1.1 400 Bad Request: 请求格式不正确,服务器无法理解。 状态码400的含义: …

.NET内网实战:通过白名单文件反序列化漏洞绕过UAC

01阅读须知 此文所节选自小报童《.NET 内网实战攻防》专栏,主要内容有.NET在各个内网渗透阶段与Windows系统交互的方式和技巧,对内网和后渗透感兴趣的朋友们可以订阅该电子报刊,解锁更多的报刊内容。 02基本介绍 03原理分析 在渗透测试和红…

Spring Boot 实现文件分片上传和下载

文章目录 一、原理分析1.1 文件分片1.2 断点续传和断点下载1.2 文件分片下载的 HTTP 参数 二、文件上传功能实现2.1 客户端(前端)2.2 服务端 三、文件下载功能实现3.1 客户端(前端)3.2 服务端 四、功能测试4.1 文件上传功能测试4.2 文件下载功能实现 参考资料 完整案例代码&…

【数据结构】-数组

数组 特点: 数组的地址连续,可以通过下标获取数据。 1. 数组扩容 步骤: $1. 创建一个比原来数组更长的新数组 $2. 让原来数组当中的数据依次复制到新数组当中 $3. 让arr指向新数组,原数组空间释放 2. 数组插入 2.1 最后位置…

智慧小区:科技之光点亮幸福家园

智慧社区的未来发展方向与趋势 从智能化管理到便捷化服务,从环保节能到安全监控,智慧社区正以其前瞻性的视野和创新性的技术,引领着未来城市生活的新方向。从智慧社区的基本概念中通过运用现代科技手段,如物联网、云计算、大数据…

0,国产FPGA(紫光同创)-新建PDS工程

国产FPGA正在蓬勃发展,紫光同创FPGA是大家竞赛时经常遇到的一款国产FPGA,本专栏从IP核开始一直到后续图像处理等。 开发板:盘古50K标准板 1,新建PDS工程 点击File(1),然后是New Projects&#…

深入解析Sysmon日志:增强网络安全与威胁应对的关键一环

不断演进的网络安全领域中,保持对威胁的及时了解至关重要。Sysmon日志在这方面发挥了至关重要的作用,通过提供有价值的见解,使组织能够加强其安全姿态。Windows在企业环境中是主导的操作系统,因此深入了解Windows事件日志、它们的…

yocto 下基于SDK的 tcpdump 移植

系列文章目录 【1】yocto系统构建 【2】yocto下mosquitto用户名和密码配置 【3】yocto 下基于SDK的 tcpdump 移植 文章目录 系列文章目录前言一、移植tcpdump的意义二、移植步骤1. 准备Yocto环境2.获取源码,配置和编译3.移植到目标设备4.测试tcpdump 总结 前言 tc…

使用python提取日志里面的role_id、vip字段的值,(vip字段可能为空或者缺失,此时需要给默认值0):

日志样例: 1068 1529597015396 g60-database-380.i.nease.net /home/g60/gamedata/log/g60_GameStatistic_20180622.log 380_game02 G60_GameStatistic 1529596878_35 [2018-06-22 00:01:18][MercLevelUp],{"merc_capacity":2739,"cur_level"…

fastGpt

参考本地部署FastGPT使用在线大语言模型 1 rockylinx 1 ollama安装 在rockylinux中安装的,ollama由1.5G,还是比较大,所有采用在windows下下载,然后安装的方式,linux安装 tar -C /usr -xzf ollama-linux-amd64.tgz #…

记一次踩坑ConcurrentModificationException

这段代码中,oDo 是一个 List 类型的对象,subbedList 是从 oDo 中通过 subList(0, 3) 方法获取的子列表。subList 方法返回的是原列表 oDo 的一个视图,而不是一个独立的列表。这意味着对 subbedList 的任何修改都会反映到 oDo 上,反…

实时数据处理:技术支持和优势

在当今快节奏的数字世界中,企业不断寻找在竞争中保持领先地位的方法。批量和近实时的数据处理方法已经无法满足企业对于数据处理速度要求了。因此实时数据处理出现,逐渐帮助企业获取更快速的决策能力。本文,我们将深入研究实时处理&#xff0…

Django 5 增删改查 小练习

1. 用命令创建目录和框架 django-admin startproject myapp cd myapp py manage.py startapp app md templates md static md media 2. Ai 生成代码 一、app/models.py from django.db import modelsclass Product(models.Model):name models.CharField(max_length255, verb…

苏州金龙技术创新赋能旅游新质生产力

2024年10月23日,备受瞩目的“2024第六届旅游出行大会”在云南省丽江市正式开幕。作为客车行业新质生产力标杆客车,苏州金龙在大会期间现场展示了新V系V12商旅版、V11和V8E纯电车型,为旅游出行提供全新升级方案。 其中,全新15座V1…

Atlas800昇腾服务器(型号:3000)—SwinTransformer等NPU推理【图像分类】(九)

服务器配置如下: CPU/NPU:鲲鹏 CPU(ARM64)A300I pro推理卡 系统:Kylin V10 SP1【下载链接】【安装链接】 驱动与固件版本版本: Ascend-hdk-310p-npu-driver_23.0.1_linux-aarch64.run【下载链接】 Ascend-…

14. NSWindow 窗口与 NSWindowController 窗口控制器

NSWindowController窗口控制器主要用于管理xib/storyboard文件中加载的NSWindow对象:1、创建一个基于xib或storyboard的NSWindowController子类会自动创建一个NSWindow;2、如果手工创建NSWindow对象,则需要维护NSWindowController和NSWindow之…

02 什么是Babel

什么是Babel? Babel 是一个 JavaScript 编译器,提供了JavaScript的编译过程,能够将源代码转换为目标代码。AST -> Transform -> Generate 官网 Babel Babel 查看AST https://astexplorer.net/ Babel所有的包 babel/traverse Babel Babel 是…