【matplotlib】可视化解决方案——如何正确设置轴长度和范围

news2024/9/21 12:37:21

概述

在 matplotlib 绘图时,往往需要对坐标轴进行设置,默认情况下,每一个绘图的最后都会调用 plt.autoscale() 方法,这个方法的底层是 gca().autoscale(enable=enable, axis=axis, tight=tight),本质是调用当前 Axes 对象的实例方法,将坐标轴视图缩放到数据尺度,也就是刚好可以让所有的数据点都在一个图中显示。很显然这是一个非常快速、方便的方法,但是也会有很大的问题,如果数据中有一个非常夸张的异常点,则 matplotlib 会为了显示那个异常点而压缩整体图像,这会导致绘图效果不理想。以绘制余弦函数为例,关闭自动调整之后绘图效果如下:

在这里插入图片描述

可以看到两个轴的范围都被设置为 [ 0 , 1 ] [0, 1] [0,1] ,这是因为如果自动调整函数被关闭 matplotlib 会使用 plt.axis() 方法的返回值作为坐标轴的范围,而该方法的默认值就是 [ 0 , 1 ] [0, 1] [0,1]

print(plt.axis()) # (0.0, 1.0, 0.0, 1.0)

如果我们传递 plt.axis([0, 2 * np.pi, -1, 1]),绘图效果如下:

在这里插入图片描述

除了传递 [xmin, xmax, ymin, ymax],该方法还可以传递一个字符串,例如 plt.axis("equal"),该参数表示绘图的横纵轴具有相同的比例和范围。其绘图效果如下:

在这里插入图片描述

plt.axis() 方法针对的是所有坐标轴,如果想要单独设置某一个坐标轴的显示范围,需要使用 plt.xlim() 或者 plt.ylim() 方法。切记一点,使用这种方式设置了一个坐标轴的范围,那么另一个坐标轴就会采用 plt.axis() 方法的返回值设置显示范围。还是以余弦函数为例,添加如下语句:

plt.xlim(xmin=0, xmax=2*np.pi)  
plt.ylim([-1, 1])

画图效果如下:

在这里插入图片描述

总结

综上所述,绘图调整显示范围的最佳步骤如下:

  1. 使用 plt.autoscale(True) 方法观察整体数据是否具有异常点;
  2. 如果没有异常点,看一下画图是否需要有特殊的显示模式(范围相等显示、紧凑显示等),如果有调用 plt.axis() 方法进行设置;
  3. 如果有异常点,在开启自动调整的情况下使用 plt.xlim() 或者 plt.ylim() 进行微调;
  4. 如果不想使用自动调整,也可以直接使用 plt.axis([xmin, xmax, ymin, ymax]) 手动指定所有坐标轴的显示范围;

最后提醒一点,调用 plt.xlim() 的底层是 gca().set_xlim(),如果绘图中有多个 Axes 对象,建议使用显式 API,即使用面向对象的方法,而不是 pyplot 快捷方法。

往期回顾

  1. 【matplotlib】可视化解决方案——如何正确理解pyplot和OO-API
  2. 【matplotlib】可视化解决方案——如何正确展示和保存图像
  3. 【matplotlib】可视化解决方案——如何设置字符串的输出字体效果
  4. 【matplotlib】可视化解决方案——如何正确使用颜色映射表
  5. 【matplotlib】可视化解决方案——如何调整轴脊位置
  6. 【matplotlib】可视化解决方案——如何设置坐标系计量方法
  7. 【matplotlib】可视化解决方案——如何正确使用文本注释
  8. 【matplotlib】可视化解决方案——如何调整计量单位和计量方法
  9. 【matplotlib】可视化解决方案——如何实现图形的动画效果
  10. 【matplotlib】可视化解决方案——如何正确使用plot方法

文中难免会出现一些描述不当之处(尽管我已反复检查多次),欢迎在留言区指正,相关的知识点也可进行分享,希望大家都能有所收获!!如果觉得我的文章写得还行,不妨支持一下。你的每一个转发、关注、点赞、评论都是对我最大的支持!

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

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

相关文章

【HDU - 6558】The Moon(概率dp)

ps:初学概率dp,所以 就算是板子也 是看了非常久,好在最后还是学会了qwq… 文章目录 题意思路代码总结 题意 思路 概率dp通常为从能够得到的状态去进行转移,在q为100%的时候,我们能够知道赢的概率为 p,那么赢的期望就是…

java的学习,刷题

先来点题目看看 1031. 两个非重叠子数组的最大和 难度中等249收藏分享切换为英文接收动态反馈 给你一个整数数组 nums 和两个整数 firstLen 和 secondLen,请你找出并返回两个非重叠 子数组 中元素的最大和,长度分别为 firstLen 和 secondLen 。 长度…

【c语言】详解const常量修饰符 | 指针变量的不同const修饰

创作不易&#xff0c;本篇文章如果帮助到了你&#xff0c;还请点赞支持一下♡>&#x16966;<)!! 主页专栏有更多知识&#xff0c;如有疑问欢迎大家指正讨论&#xff0c;共同进步&#xff01; 给大家跳段街舞感谢支持&#xff01;ጿ ኈ ቼ ዽ ጿ ኈ ቼ ዽ ጿ ኈ ቼ ዽ ጿ…

网络:DPDK复习相关知识点

1.转发模型&#xff1a; 1.1 运行至完成&#xff1a;run to complate &#xff08;RTC&#xff09; 参考笔记&#xff1a;DPDK介绍-CSDN博客 选择哪些核可以被DPDK使用&#xff0c;最后把处理对应收发队列的线程绑定到对应的核上&#xff0c;每个报文的生命周期都只能在其中一个…

电脑桌面日历怎么设置?超简单方法分享!

案例&#xff1a;电脑桌面日历怎么设置&#xff1f; 【最近因为工作的原因到了国外&#xff0c;但是电脑桌面的日历和时间一直都是错误的&#xff0c;急求一个设置电脑桌面日历的方法&#xff01;感谢大家&#xff01;】 电脑桌面日历是一种方便实用的工具&#xff0c;它可以…

liunx笔记

快捷键 #移动到行首 ctrla #移动到行尾 ctrle #删除光标之前的字符 ctrlu #删除光标之后的字符 ctrlk #清屏 ctrll正则表达式 正则中普通常用的元字符 元字符功能.匹配除了换行符以外的任意单个字符*前导字符出现0次或连续多次.*任意长度字符^行首(以…开头)&#xff0c;如…

浅谈浏览器调试

浅谈浏览器调试 1. 假设你在控制台打印了一个变量 &#xff0c; 想在浏览器追踪从哪里来要到那里去&#xff1a;2. 开启source maps3. watch 可以监听当前变量, 也可以在scope中看当前作用域的变量&#xff1a;4. call Stack 可以查看当前调用链, 找到对应代码进行debugger5. 你…

TCP / IP 五层网络模型

目录 一、协议的概念 1.1 网络通信为什么需要使用协议 二、网络模型 2.1 OSI 七层模型 三、TCP / IP 五层网络模型 四、协议分层的背景下&#xff0c;数据如何通过网络传输&#xff1f; 4.1 再谈协议 4.2 封装 / 分用 vs 序列化 / 反序列化 4.3 什么是端口号 4.4 什么…

创新实践|导致创新团队敏捷实践失败的12种原因

揭示敏捷实践中常犯的12大错误&#xff0c;了解如何避免这些敏捷失败 陷阱&#xff0c;找出问题根源并采取有效改进措施&#xff0c;提高项目成功率。立即连线 Runwise.co 社区敏捷专家获得专业建议&#xff0c;或 Runwise.co 在线学习敏捷方法实战课程&#xff0c;提升您和团队…

layui入门使用文档(包含几个重要的组件)

一、引言 &#xff1a;注意部分配置是用到了和jsp交互使用在HTML时需要修改 1.1 介绍 https://www.layuiweb.com/ 在官网首页&#xff0c;可以很方便的下载LayUI LayUI 是一款经典模块化前端 UI 框架&#xff0c;我们只需要定义简单的HTML、CSS、JS即可实现很复杂的前端效果。 …

Vue3之setup参数介绍

setup(props, context) {... }一、参数 使用setup函数时&#xff0c;它将接受两个参数&#xff1a; propscontext 让我们更深入地研究如何使用每个参数 二、Props setup函数中的第一个参数是props。正如在一个标准组件中所期望的那样&#xff0c;setup函数中的props是响应…

Elasticsearch:Explicit mapping - 显式映射

显式映射相比较动态映射&#xff08;Dynamic mapping&#xff09;是需要我们在索引创建时就定义字段及其类型。这个和我们传统的 RDMS 数据库一样&#xff0c;在我们写入数据到数据库之前&#xff0c;我们需要工整地定义好每个字段及其类型和长度。Elasticsearch 既可以使用显式…

【C++】二叉搜索树(概念、实现、应用)

前言&#xff1a; 此前我们在C语言实现数据结构的时候学习过二叉树&#xff0c;但是那个时候我们没有深入学习二叉搜索树。本章重提二叉树并详解二叉搜索树有下面两个原因&#xff1a; 1、为我们下一章学习set和map做准备&#xff1b;2、详解我们进阶一点的二叉树的面试OJ题&a…

【C++学习】日积月累——二叉搜索树详解

一、二叉搜索树 1.1 二叉搜索树概念 二叉搜索树又称二叉排序树&#xff0c;它或者是一棵树&#xff0c;或者是具有以下性质的二叉树&#xff1a; 若它的左子树不为空&#xff0c;则左子树上所有节点的值都小于根节点的值&#xff1b;若它的右子树不为空&#xff0c;则右子树上…

程序员常用的代码比较工具,你更喜欢哪款?

目录 &#x1f4a1; Linux 命令行的对比工具 一. diff 二. vimdiff命令 &#x1f4a1; GUI 比对工具 三. WinMerge 四. Diffuse 五. Code Compare 六. Beyond Compare 七. UltraCompare 八. Altova DiffDog 九. Kompare 十. Meld 十一. XXdiff 十二. KDiff3 十…

拓扑排序模板及例题

概念 一个有向无环图必然存在一个拓扑序列与之对应。 流程&#xff1a; 先将所有入度为0的节点入队将队列中的节点出队&#xff0c;出队序列就是对应拓扑序。对于弹出的节点x&#xff0c;遍历x所有出度y&#xff0c;对y进行入读减一操作检查入度减一之后的节点y&#xff0c;…

慈航公益·高莞乡情行

2023年4月9日&#xff0c;慈航公益高莞乡情行---高村陈屋第二届“敬老睦宗情暖乡土”活动日暨“英华教育奖学基金”成立大会在高村陈屋如期举行。 高村陈屋位于河源市连平县境内&#xff0c;为了赶上10点开始的活动&#xff0c;清晨六点半&#xff0c;志愿者们便从慈航出发&am…

12电感的应用

目录 一、电源电路使用 1、设计实例 二、高频电路中使用 1、选择Q值高的电感器 2、选择自谐振频率高的电感器 3、选择电感偏差小的电感器 三、控制振荡频率 四、确保高频信号的隔离 五、共模轭流线圈 一、电源电路使用 如式&#xff08;5&#xff09;所示&#xff0c;…

数码照片管理系统Damselfly

什么是 Damselfly &#xff1f; Damselfly 是一个基于服务器的数码照片管理系统。Damselfly 旨在管理基于文件夹的大型照片集合&#xff0c;特别关注快速搜索和关键字标记工作流程。Damselfly 包含强大的机器学习功能&#xff0c;可帮助您识别照片及其主体&#xff0c;包括人脸…

使用Socks5代理保障Windows网络安全

摘要&#xff1a;Socks5代理是一种在Windows系统中保障网络安全的有效方法。本文将详细介绍什么是Socks5代理&#xff0c;以及如何在Windows系统中使用Socks5代理来加强网络安全。同时&#xff0c;我们还将探讨如何编写代码来使用Socks5代理来保障应用程序的网络安全。 正文&am…