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

matlab使用教程(70)—修改坐标区属性

1.控制坐标轴长度比率和数据单位长度

        您可以控制 x 轴、y 轴和 z 轴的相对长度(图框纵横比),也可以控制一个数据单位沿每个轴的相对长度(数据纵横比)。

1.1图框纵横比

        图框纵横比是 x 轴、y 轴和 z 轴的相对长度。默认情况下,图框纵横比基于图窗大小。您可以使用 pbaspect 函数更改纵横比。将纵横比设置为一个由正值组成的三元素向量,这些正值表示相对坐标轴长度。

        例如,绘制一个拉长的圆的图。然后设置图框纵横比,以使 x 轴是 y 轴和 z 轴(未显示)长度的两倍。

t = linspace(0,2*pi);
plot(sin(t),2*cos(t))
grid on
pbaspect([2 1 1])

        在三维视图中显示坐标区可查看 z 轴。

view(3)

        对于方形坐标区,请使用 [1 1 1]。此值类似于使用 axis square 命令。

t = linspace(0,2*pi);
plot(sin(t),2*cos(t))
grid on
pbaspect([1 1 1])

1.2数据纵横比

        数据纵横比是沿 x 轴、y 轴和 z 轴的数据单位的相对长度。使用 daspect 函数可以更改数据纵横比。将数据纵横比设置为一个由正值组成的三元素向量,这些正值表示沿每个轴的数据单位的相对长度。

        例如,设置此纵横比,以使沿 x 轴从 0 到 1 的长度等于沿 y 轴从 0 到 0.5 的长度和沿 z 轴(未显示) 0 到 2 的长度。

t = linspace(0,2*pi);
plot(sin(t),2*cos(t))
grid on
daspect([1 0.5 2])

        在三维视图中显示坐标区可查看 z 轴。

view(3)

        若要在所有方向采用相等的数据单位,请使用 [1 1 1]。此值类似于使用 axis equal 命令。方向的一个数据单位与 y 和 z 方向的一个数据单位长度相同。

t = linspace(0,2*pi);
plot(sin(t),2*cos(t))
grid on
daspect([1 1 1])

1.3还原为默认比率

        更改数据纵横比。然后使用 axis normal 命令还原为默认图框和数据纵横比。

t = linspace(0,2*pi);
plot(sin(t),2*cos(t))
grid on
daspect([1 1 1])
axis normal

2.控制坐标区布局

2.1与坐标区位置相关的属性

        Axes 对象拥有多项属性,可用于控制坐标区大小以及标题和轴标签在图窗中的布局。

  • OuterPosition - 坐标区的外边界,包括标题、标签和边距。以 [left bottom width height] 形式的向量指定此属性。left 和 bottom 值指示从图窗左下角到外边界左下角的距离。width 和 height 值指示外边界尺寸。

  • Position - 绘图所在的内坐标区的边界,不包括标题、标签和边距。以 [left bottom width height] 形式的向量指定此属性。

  • TightInset - 为 Position 属性值中的宽度和高度所添加的边距,指定为 [left bottom right top] 形式的向量。此属性是只读的。在添加轴标签和标题时,MATLAB® 会更新这些值以适应文本。Position 和 TightInset 属性所定义的边界大小包含所有图形文本。

  • ActivePositionProperty - Axes 对象的大小发生改变时保留下来的位置属性,指定为 'outerposition'(默认值)或 'position'

  • Units - 位置单位。单位必须设置为 'normalized'(默认值)以启用自动调整坐标区大小。当位置单位为长度单位(例如英寸或厘米)时,Axes 对象为固定大小。

2.2位置和边距的边界

        下图显示了一个二维视图,其中 OuterPosition 值定义红色区域、Position 值定义蓝色区域,以及基于 Position 外扩 TightInset 值所定义的品红色区域。

        下图显示了一个三维视图,同样包含了由 OuterPosition 值定义的坐标区外边界区域(红色)、Position 值定义的坐标区内边界区域(蓝色),以及在 Position 内边界基础上外扩 TightInset 值所定义的坐标区区域(品红色)。

2.3控制自动调整大小行为

        某些情况可能触发 Axes 对象自动调整大小。例如,以交互方式调整图窗大小或添加标题或轴标签将激活自动调整大小。有时,新坐标区的大小无法同时满足 Position 和 OuterPosition 值,这种情况下需要使用 ActivePositionProperty 来指示要保留哪个值。将 ActivePositionProperty 指定为下列值之一:

  • 'outerposition' - 保留 OuterPosition 值。如果不希望坐标区或任何周围文本超出特定外边界,可使用此选项。MATLAB 会调整坐标区内部区域大小(显示绘图时),以尽力在外边界范围内适应内容。

  • 'position' - 保留 Position 值。如果希望坐标区的内部区域在图窗中保持特定大小,可使用此选项。此选项有时会导致文本溢出图窗。

        通常,将 ActivePositionProperty 值设置为 'outerposition' 更可取。但是,坐标区标题或标签过长可能会使坐标区内部区域大大缩小,文字过小而难于阅读。在这种情况下,最好保持特定大小的内部坐标区,即使周围文本溢出了图窗也应如此。

        例如,创建一个带有两个坐标区的图窗,并为每个坐标区位置指定相同的宽度和高度。对于上坐标区,将 ActivePositionProperty 值设置为 'outerposition',对于下坐标区则设置为 'position'。注意,在上坐标区中,内部区域会缩小以适应文本,但文本不会溢出图窗。在下坐标区中,会保留内部区域的大小,但部分文本被截断。

figure; 
ax1 = axes('Position',[0.13 0.58 0.77 0.34]);
ax1.ActivePositionProperty = 'outerposition';
plot(ax1,1:10)
title(ax1,'Preserve OuterPosition')
yticklabels(ax1,{'My incredibly descriptive, excessively wordy, and overly long label',...'label 2','label 3'})ax2 = axes('Position',[0.13 0.11 0.77 0.34]);
ax2.ActivePositionProperty = 'position';
plot(ax2,1:10)
title(ax2,'Preserve Position')
yticklabels(ax2,{'My incredibly descriptive, excessively wordy, and overly long label',...'label 2','label 3'})

2.4伸展填充行为

        默认情况下,MATLAB 会伸展坐标区以填充可用的空间。这种“伸展填充”行为可能会导致部分扭曲。坐标区可能与其 DataAspectRatioPlotBoxAspectRatio 和 CameraViewAngle 属性中存储的数据纵横比、图框纵横比和照相机视角值不完全匹配。Axes 对象的 DataAspectRatioModePlotBoxAspectRatioMode 和 CameraViewAngleMode 属性设置为 'auto' 时,会启用“伸展填充”行为。

        如果您指定数据纵横比、绘图框纵横比或照相机视角,则会禁用“伸展填充”行为。如果禁用“伸展填充”行为,MATLAB 会使坐标区在可用空间内尽可能大并严格遵循属性值,不会出现扭曲。

        例如,以下图窗分别显示了同一绘图在启用和未启用“伸展填充”行为时的效果。点线显示由 Position 属性定义的可用空间。在两种情况中,数据纵横比、绘图框纵横比和照相机视角值是相同的。但是,在左侧绘图中,伸展造成了一定的扭曲。

启用伸展填充(一定的扭曲)禁用伸展填充(无扭曲)

相关文章:

matlab使用教程(70)—修改坐标区属性

1.控制坐标轴长度比率和数据单位长度 您可以控制 x 轴、y 轴和 z 轴的相对长度(图框纵横比),也可以控制一个数据单位沿每个轴的相对长度(数据纵横比)。 1.1图框纵横比 图框纵横比是 x 轴、y 轴和 z 轴的相对长度。默认…...

手撕C语言题典——反转链表

目录 前言 一.思路 1)创建新链表 2)创建三个指针 二.代码实现 搭配食用更佳哦~~ 数据结构之单单单——链表-CSDN博客 数据结构之单链表的基本操作-CSDN博客 前面学了单链表的相关知识,我们来尝试做一下关于顺序表的经典算法题~ 前言 反转…...

用lobehub打造一个永久免费的AI个人助理

Lobe Chat是一个开源的高性能聊天机器人框架,它被设计来帮助用户轻松创建和部署自己的聊天机器人。这个框架支持多种智能功能,比如语音合成(就是让机器人能说话),还能理解和处理多种类型的信息,不仅限于文字…...

Linux网络编程】传输层中的TCP和UDP(UDP篇)

【Linux网络编程】传输层中的TCP和UDP(UDP篇) 目录 【Linux网络编程】传输层中的TCP和UDP(UDP篇)传输层再谈端口端口号范围划分认识知名端口号netstatiostatpidofxargs UDP协议UDP协议端格式UDP的特点面向数据报UDP的缓冲数据UDP使…...

Ciphey无法安装的解决办法

安装过程纯属自己实践,满满干货 困扰我几天的问题终于解决了 我看着教程在window上安装 python3.8/python3.9/python3.10无论如何都安装不上, 在win10虚拟机仍然安装不上 可能是我电脑环境问题 解决办法: 在kali中安装,但是…...

交互之舞:Processing中的用户互动与响应设计

前言: 🌟在前两篇文章中,我们已经学会了如何绘制静态图形和创建动态动画。今天,我们将迈入一个新的领域——交互设计。在Processing中,用户互动是创造沉浸式体验的关键。让我们一起探索如何让用户与你的艺术作品互动&…...

unetr_plus_plus(UNETR++、nnU-Net)系列数据处理理解汇总

unetr_plus_plus(UNETR、nnU-Net)系列数据处理理解汇总,这是一个 3D 图像分割的任务系列集。 为什么说他们是一个系列集合呢?主要是因为: 论文的训练和评价数据集是一样的,都是来自于10全挑战赛&#xff…...

稻盛和夫《活法》读后感

最近几天又重读了一边稻盛和夫的《活法》,里面的观点让我感触颇多,现分享给诸君。 稻盛和夫毕业后,适逢经济萧条,没有好机会进入大公司深造,只能在一名教授的推荐下进入了一家做陶瓷绝缘体的公司,虽然公司…...

Smurf 攻击是不是真的那么难以防护

Smurf攻击是一种网络攻击方式,属于分布式拒绝服务(DDoS)攻击的变种。以 1990 年代流行的名为 Smurf 的漏洞利用工具命名。该工具创建的 ICMP 数据包很小,但可以击落大目标。 它利用ICMP协议中的回声请求(ping&#x…...

ASP.NET之图像控件

在ASP.NET中,用于显示图像的控件主要是Image控件,Image控件属于ASP.NET Web Forms的一部分,它允许你在Web页面上显示图像。以下是如何在ASP.NET Web Forms中使用 1. 添加Image控件到页面 在ASP.NET Web Forms页面上,你可以通过设…...

二级Java第五套真题(乱序版)含真题解析

一. 单选题(共39题,39分) 1. (单选题, 1分) 阅读下列代码 public class Test implements Runnable { public void run (Thread t) { System.out.println("Running."); } public static void main (String[ ] args) { T…...

【C++】GNU Debugger (GDB) 使用示例

文章目录 GDB 使用示例GDB的常用命令示例 GDB 使用示例 GDB的常用命令 GDB(GNU Debugger)是一种Unix下的程序调试工具,用于调试C、C等编程语言编写的程序。以下是一些GDB的常用命令: 启动和退出: run 或 r&#xf…...

Qlik Sense :使用智能搜索Smart Search

智能搜索 智能搜索是 Qlik Sense 中的全局搜索工具,可让您从应用程序中的任何工作表搜索应用程序中的整个数据集。可通过点击 从工作表中的选择项栏使用智能搜索。 通过智能搜索字段,您可以从任何工作表搜索您的应用程序中的完整数据集。 信息注释 智…...

React 学习-1

安装--使用npm 元素渲染 React只定义一个根节点,由 React DOM 来管理。通过ReactDOM.render()方法将元素渲染到根DOM节点上。 React 元素都是不可变的。当元素被创建之后,你是无法改变其内容或属性的。目前更新界面的唯一办法是创建一个新的元素&#xf…...

Libcity 笔记:自定义模型

在/libcity/model/trajectory_loc_prediction/,我们复制一份Deepmove.py,得到DM_tst.py,我们不改变其中的机制,只动class name 然后修改相同目录下的__init__.py: 修改task_config文件: 在config/model/tra…...

易图讯科技三维电子沙盘系统

深圳易图讯科技有限公司(www.3dgis.top)创立于2013年,专注二三维地理信息、三维电子沙盘、电子地图、虚拟现实、大数据、物联网和人工智能技术研发,获得20多项软件著作权和软件检测报告,成功交付并实施了1000多个项目&…...

数据结构与算法学习笔记之线性表四---单链表的表示和实现(C++)

目录 前言 一、顺序表的优缺点 二、单链表的表示和实现 1.初始化 2.清空表 3.销毁 4.表长 5.表空 6.获取表中的元素 7.下标 8.直接前驱 9.直接后继 10.插入 11.删除 12.遍历链表 13.测试代码 前言 这篇博客主要介绍单链表的表示和实现。 一、顺序表的优缺点 线…...

go语言切片slice使用细节和注意事项整理

go语言中切片slice的使用是最为频繁的,效率也是最高的, 今天就给大家说说我们在使用过程中会忽略的一些细节。 先普及一下slice的核心基础知识, go语言中的切片是引用类型, 其底层数据的存储实际上是存储在一个数组 上&#xff08…...

C语言 | Leetcode C语言题解之第85题最大矩形

题目&#xff1a; 题解&#xff1a; int maximalRectangle(char** matrix, int matrixSize, int* matrixColSize) {int m matrixSize;if (m 0) {return 0;}int n matrixColSize[0];int left[m][n];memset(left, 0, sizeof(left));for (int i 0; i < m; i) {for (int j …...

2024-05-13四月初六周一

2024-05-13四月初六周一 06:30-08:30 coding 动态规划算法&#xff1a; 08:30-12:30 深兰Ai第五期 Part1:课时269&#xff1a;00:00:00 12:30-13:00 午饭烧水&#xff1a; 13:30-19:00 深兰Ai第五期&#xff1a; 20:00-23:00 coding 线性回归&#xff1a;...

HTML 语义化

目录 HTML 语义化HTML5 新特性HTML 语义化的好处语义化标签的使用场景最佳实践 HTML 语义化 HTML5 新特性 标准答案&#xff1a; 语义化标签&#xff1a; <header>&#xff1a;页头<nav>&#xff1a;导航<main>&#xff1a;主要内容<article>&#x…...

Java 8 Stream API 入门到实践详解

一、告别 for 循环&#xff01; 传统痛点&#xff1a; Java 8 之前&#xff0c;集合操作离不开冗长的 for 循环和匿名类。例如&#xff0c;过滤列表中的偶数&#xff1a; List<Integer> list Arrays.asList(1, 2, 3, 4, 5); List<Integer> evens new ArrayList…...

Redis相关知识总结(缓存雪崩,缓存穿透,缓存击穿,Redis实现分布式锁,如何保持数据库和缓存一致)

文章目录 1.什么是Redis&#xff1f;2.为什么要使用redis作为mysql的缓存&#xff1f;3.什么是缓存雪崩、缓存穿透、缓存击穿&#xff1f;3.1缓存雪崩3.1.1 大量缓存同时过期3.1.2 Redis宕机 3.2 缓存击穿3.3 缓存穿透3.4 总结 4. 数据库和缓存如何保持一致性5. Redis实现分布式…...

Python爬虫实战:研究feedparser库相关技术

1. 引言 1.1 研究背景与意义 在当今信息爆炸的时代,互联网上存在着海量的信息资源。RSS(Really Simple Syndication)作为一种标准化的信息聚合技术,被广泛用于网站内容的发布和订阅。通过 RSS,用户可以方便地获取网站更新的内容,而无需频繁访问各个网站。 然而,互联网…...

macOS多出来了:Google云端硬盘、YouTube、表格、幻灯片、Gmail、Google文档等应用

文章目录 问题现象问题原因解决办法 问题现象 macOS启动台&#xff08;Launchpad&#xff09;多出来了&#xff1a;Google云端硬盘、YouTube、表格、幻灯片、Gmail、Google文档等应用。 问题原因 很明显&#xff0c;都是Google家的办公全家桶。这些应用并不是通过独立安装的…...

第25节 Node.js 断言测试

Node.js的assert模块主要用于编写程序的单元测试时使用&#xff0c;通过断言可以提早发现和排查出错误。 稳定性: 5 - 锁定 这个模块可用于应用的单元测试&#xff0c;通过 require(assert) 可以使用这个模块。 assert.fail(actual, expected, message, operator) 使用参数…...

C++中string流知识详解和示例

一、概览与类体系 C 提供三种基于内存字符串的流&#xff0c;定义在 <sstream> 中&#xff1a; std::istringstream&#xff1a;输入流&#xff0c;从已有字符串中读取并解析。std::ostringstream&#xff1a;输出流&#xff0c;向内部缓冲区写入内容&#xff0c;最终取…...

06 Deep learning神经网络编程基础 激活函数 --吴恩达

深度学习激活函数详解 一、核心作用 引入非线性:使神经网络可学习复杂模式控制输出范围:如Sigmoid将输出限制在(0,1)梯度传递:影响反向传播的稳定性二、常见类型及数学表达 Sigmoid σ ( x ) = 1 1 +...

DeepSeek 技术赋能无人农场协同作业:用 AI 重构农田管理 “神经网”

目录 一、引言二、DeepSeek 技术大揭秘2.1 核心架构解析2.2 关键技术剖析 三、智能农业无人农场协同作业现状3.1 发展现状概述3.2 协同作业模式介绍 四、DeepSeek 的 “农场奇妙游”4.1 数据处理与分析4.2 作物生长监测与预测4.3 病虫害防治4.4 农机协同作业调度 五、实际案例大…...

Redis的发布订阅模式与专业的 MQ(如 Kafka, RabbitMQ)相比,优缺点是什么?适用于哪些场景?

Redis 的发布订阅&#xff08;Pub/Sub&#xff09;模式与专业的 MQ&#xff08;Message Queue&#xff09;如 Kafka、RabbitMQ 进行比较&#xff0c;核心的权衡点在于&#xff1a;简单与速度 vs. 可靠与功能。 下面我们详细展开对比。 Redis Pub/Sub 的核心特点 它是一个发后…...