matlab使用教程(71)—控制坐標區布局

1.與位置相關的屬性和函數

????????有幾個屬性和函數可用于獲取和設置坐標區的大小與位置。下表摘要顯示了這些屬性和函數。

函數或屬性描述

OuterPosition?屬性

使用此屬性可以查詢或更改坐標區的外邊界,包括標題、標簽和邊距。要更改外邊界,請將此屬性指定為?[left bottom width height]?形式的向量。left?和?bottom?值指示從圖窗左下角到外邊界左下角的距離。width?和?height?值指示外邊界尺寸。

Position?屬性

使用此屬性可以查詢或更改繪圖區域,此區域通常由圖框限定。此區域不包括標題、標簽以及標題和標簽周圍的邊距。要更改繪圖區域的大小,請將此屬性指定為?[left bottom width height]?形式的向量。

tightPosition?函數?(自 R2022b 起)

使用此函數可以查詢繪圖區域,此區域通常由圖框限定。對于具有約束縱橫比的坐標區(如方形坐標區、極坐標區或包含圖像的坐標區),該函數通常能返回比?Position?屬性更準確的大小和位置信息。

TightInset?屬性

使用此屬性可以查詢包含標題、刻度標簽和軸標簽在內的圖框周圍的邊距。在添加軸標簽和標題時,MATLAB??會更新此屬性以適應文本。Position?和?TightInset?屬性所定義的邊界大小包含所有文本標簽。

PositionConstraint?屬性?(自 R2020a 起)

使用此屬性可以查詢或控制在添加標題或標簽時是保留繪圖區域(坐標區內)還是保留坐標區的外邊界。要更改保留坐標區的哪些區域,請將此屬性指定為?"innerposition"?或?"outerposition"

Units?屬性

使用此屬性可以查詢或更改坐標區位置值的單位。值必須設置為?"normalized"(默認值)以啟用自動調整坐標區大小。

axis?函數

使用此函數可調整坐標區范圍或縱橫比,而無需執行計算或設置特定屬性。例如:

  • axis image?- 更改圖框的大小以適應圖像。

  • axis padded?- 在可視化(例如,繪制的線)和圖框之間添加填充邊距。

2.位置和邊距的邊界

????????下圖顯示了一個二維視圖,其中?OuterPosition?值定義紅色區域、Position?值定義藍色區域,以及基于?Position?外擴?TightInset?值所定義的品紅色區域。

2-D Cartesian axes with a red rectangle drawn around the area defined by the OuterPosition values, a blue rectangle drawn around the region defined by the Position values, and a magenta rectangle drawn around the area defined by the Position and TightInset values combined

????????下圖顯示了一個三維視圖,同樣包含了由?OuterPosition?值定義的坐標區外邊界區域(紅色)、Position?值定義的坐標區內邊界區域(藍色),以及在?Position?內邊界基礎上外擴?TightInset?值所定義的坐標區區域(品紅色)。

3-D Cartesian axes with a red rectangle drawn around the area defined by the OuterPosition values, a blue rectangle drawn around the region defined by the Position values, and a magenta rectangle drawn around the area defined by the Position and TightInset values combined

3.方形或具有約束縱橫比坐標區的位置

????????自 R2022b 起如果坐標區具有約束縱橫比,例如,如果您正在繪制一個圖像,Position?屬性和?tightPosition?函數返回不同結果。根據您要創建的演示內容的類型,使用其中一項。

????????例如,顯示圖像。使用?axis?函數保留圖像的縱橫比。

figure
C = imread("ngc6543a.jpg");
ax = axes;
image(C)
axis image

????????通過調用?tightPosition?函數獲得位置向量。使用向量在當前顯示在坐標區中的圖像周圍繪制紅色矩形。

tpos = tightPosition(ax);
annotation("rectangle",tpos,Color="red",LineWidth=2)

Axes showing an image with a red rectangle drawn around the area defined by the value returned by the tightPosition function

????????通過查詢坐標區的?Position?屬性獲得另一個位置向量。使用向量繪制一個藍色矩形,該矩形定義類似大小的圖像的繪圖區域,但具有默認縱橫比。當顯示一系列具有不同縱橫比的多個圖像時,該向量中的值對查詢整個圖像區域可能會有所幫助。

pos = ax.Position;
annotation("rectangle",pos,Color="blue",LineWidth=2)

Axes showing an image with a red rectangle drawn around the area defined by the value returned by the tightPosition function. A blue rectangle is drawn around the area defined by the Position property. The red rectangle coincides with the perimeter of the plot box. The area returned by the Position property has more space on the left and right sides of the image.

4.控制自動調整大小行為

????????某些情況可能觸發?Axes?對象自動調整大小。例如,以交互方式調整圖窗大小或添加標題或軸標簽將激活自動調整大小。有時,新坐標區的大小無法同時滿足?Position?和?OuterPosition?值,這種情況下需要使用?PositionConstraint?屬性來指示要保留哪個值。

????????將?PositionConstraint?屬性指定為下列值之一:

  • "outerposition"?- 保留?OuterPosition?值。如果不希望坐標區或任何周圍文本超出特定外邊界,可使用此選項。MATLAB 會調整坐標區內部區域大小(顯示繪圖時),以盡力在外邊界范圍內適應內容。

  • "innerposition"?- 保留?InnerPosition?值。如果希望坐標區的內部區域在圖窗中保持特定大小,可使用此選項。此選項有時會導致文本溢出圖窗。

????????在 R2020a 之前: 使用?ActivePositionProperty?和值?"outerposition"?或?"position"

????????通常,將?PositionConstraint?屬性設置為?"outerposition"?更可取。但是,坐標區標題或標簽過長可能會使坐標區內部區域大大縮小,文字過小而難于閱讀。在這種情況下,最好保持特定大小的內部坐標區,即使周圍文本溢出了圖窗也應如此。

????????例如,創建一個帶有兩個坐標區的圖窗,并為每個坐標區位置指定相同的寬度和高度。對于上坐標區,將?PositionConstraint?屬性設置為?"outerposition",對于下坐標區則設置為?"innerposition"。注意,在上坐標區中,內部區域會縮小以適應文本,但文本不會溢出圖窗。在下坐標區中,會保留內部區域的大小,但部分文本被截斷。

figure; 
ax1 = axes("Position",[0.13 0.58 0.77 0.34]);
ax1.PositionConstraint = "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.PositionConstraint = "innerposition";
plot(ax2,1:10)
title(ax2,"Preserve Position")
yticklabels(ax2,["My incredibly descriptive, excessively wordy, and overly long label",..."label 2","label 3"])

Two axes that are vertically stacked. The upper axes has a long y-axis label, and the plot box has shrunk to accommodate the long string of text. In the lower axes, the y-axis label is clipped to preserve the size of the plot box.

5.伸展填充行為

????????默認情況下,MATLAB 會伸展坐標區以填充可用的空間。這種“伸展填充”行為可能會導致部分扭曲。坐標區可能與其?DataAspectRatioPlotBoxAspectRatio?和?CameraViewAngle?屬性中存儲的數據縱橫比、圖框縱橫比和相機視角值不完全匹配。Axes?對象的?DataAspectRatioModePlotBoxAspectRatioMode?和?CameraViewAngleMode?屬性設置為?"auto"?時,會啟用“伸展填充”行為。

????????如果您指定數據縱橫比、繪圖框縱橫比或相機視角,則會禁用“伸展填充”行為。如果禁用“伸展填充”行為,MATLAB 會使坐標區在可用空間內盡可能大并嚴格遵循屬性值,不會出現扭曲。

????????例如,以下圖窗分別顯示了同一繪圖在啟用和未啟用“伸展填充”行為時的效果。在兩種情況中,數據縱橫比、繪圖框縱橫比和相機視角值是相同的。但是,在左側繪圖中,伸展造成了一定的變形。

啟用伸展填充(一定的變形)禁用伸展填充(無變形)

Plot of a circle stretched to fill the plot box, which is rectangular. Tthe circle displays as an oval.

Plot of a circle without any distortion

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/diannao/12785.shtml
繁體地址,請注明出處:http://hk.pswp.cn/diannao/12785.shtml
英文地址,請注明出處:http://en.pswp.cn/diannao/12785.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

MySQL、JDBC復盤及規劃

數據庫仍有習題尚未做完,策略從一天做完改為每天5到10題,以此達到掌握和復習的效果,JDBC的六部仍需每天練習,從明天開始正式進行JavaWeb的學習,預計持續到七月中旬,還會完成一個書城項目,六月底…

基于Hadoop的課程診改大數據可視化分析研究與應用

基于Hadoop的課程診改大數據可視化分析研究與應用 “A Study and Application of Big Data Visualization Analysis for Course Diagnosis and Improvement based on Hadoop” 完整下載鏈接:基于Hadoop的課程診改大數據可視化分析研究與應用 文章目錄 基于Hadoop的課程診改大…

Vue 快速入門:Vue初級

語法規則 前端渲染 渲染有幾種方式:原生js、js模板、Vue模板語法 原生js 使用字符串拼接 js模板語法 Vue.js 模板語法概述 Vue.js 是一個用于構建用戶界面的漸進式框架,其模板語法非常靈活和直觀。Vue 的模板語法基于 HTML,可以通過指令…

Symbol類型的作用

在TypeScript(和JavaScript)中,Symbol 是一個內置對象,它提供了一個唯一的且不可改變的數據類型,用于作為對象的鍵(key)。這種類型主要用于避免命名沖突,特別是在使用像 for...in 或…

kali更換鏡像源

vim /etc/apt/sources.list.d/docker.list 或 vim /ect/apt/sources.list #清華大學源 deb http://mirrors.tuna.tsinghua.edu.cn/kali kali-rolling main contrib non-free deb-src https://mirrors.tuna.tsinghua.edu.cn/kali kali-rolling main contrib non-free #中科大 de…

PID調節常見的問題----積分飽和等問題--參考學習

1, PID控制學習筆記之三—積分的處理 https://zhuanlan.zhihu.com/p/264238608 2,PID控制參數整定(調節方法)原理圖示MATLAB調試 https://blog.csdn.net/viafcccy/article/details/107988093 3,如何理解PID控制算法中…

Java為什么會成為現在主流的編程語言

Java為什么會成為現在的主流語言 前言一、Java語言概述Java是什么為什么大多數人會選擇從事Java為什么從事Java的工作者數量從年遞減 二、Java語言的特點簡單性面向對象分布式(微服務)健壯性安全性體系結構中立可移植性解釋型高性能多線程動態性 三、Jav…

UDP多對多組播通信

廣播和多播僅應用于UDP。TCP是一個面向連接的協議,TCP一定是點對點的,一點是兩個主機來建立連接的,TCP肯定是單播。只有UDP才會使用廣播和組播。 如下示例實現一個UDP多對多的組播通信,進程中有收、發兩個線程,分別表…

6款電腦精選工具軟件推薦!

AI視頻生成:小說文案智能分鏡智能識別角色和場景批量Ai繪圖自動配音添加音樂一鍵合成視頻https://aitools.jurilu.com/ 1.IP地址查看工具——純真ip數據庫 純真IP數據庫是一個易于操作的IP地址查詢工具,它允許用戶通過輸入IP地址來查詢其對應的地理位置…

Django創建網站的地基

相關文檔 1、為新網站創建一個文件夾(這里是:locallibrary) D:\django>mkdir locallibraryD:\django>cd locallibraryD:\django\locallibrary>dirVolume in drive D is 新加卷Volume Serial Number is B68C-03F7Directory of D:\dj…

【Uniapp】簡易封裝提示框showToast/showModal

組件 // 封裝提示框 export const showModal (content, showCancel false, title "提示") > {return new Promise((resolve, reject) > {uni.showModal({title: title,content: content,showCancel: showCancel,success: (res) > {resolve(res);},fail:…

Linux計劃任務功能介紹

一次性計劃任務(不能跨越0點) at 16:20 at> echo hello | wall at> at 1621 at> mkdir /tmp/date %F at> at 16:2212022015 at> rm -fr /tmp/* at> job 33 at 2015-12-02 16:22 atq 查詢計劃任務 atrm 刪除計劃任務 atrm 33 /etc/at.deny 拒絕使用at …

結合多模態 AI 谷歌展示 AR 眼鏡原型機;Meta 被曝開發帶攝像頭的 AI 耳機丨 RTE 開發者日報 Vol.204

開發者朋友們大家好: 這里是 「RTE 開發者日報」,每天和大家一起看新聞、聊八卦。我們的社區編輯團隊會整理分享 RTE(Real Time Engagement) 領域內「有話題的新聞」、「有態度的觀點」、「有意思的數據」、「有思考的文章」、「…

如何修改android 項目顯示的app名

修改vlaues下的string.xml文件 修改這個標簽中的內容就行

國產銀河麒麟V10SP1系統安裝Qt和MySql步驟

安裝軟件:準備好Kylin-Desktop-V10-SP1-Release-hwe-2107-x86_64.iso和qt-opensource-linux-x64-5.14.2.run 安裝步驟: 1、VMWare軟件中新建一個虛擬機并安裝Kylin-Desktop-V10-SP1-Release操作系統,安裝時候輸入密碼的地方記得要用英文&am…

“網絡安全新紀元:等保2.0的詳細解讀與實踐”

網絡安全等級保護基本要求》(等保2.0)于2019年6月發布,是我國網絡安全等級保護制度的一項重要標準。等保2.0主要針對關鍵信息基礎設施的網絡安全保護,對數據安全和個人信息保護提出了更高的要求。本文將對等保2.0進行詳細解讀&…

3.深度學習課程--技術棧

上一節我們概覽了深度學習的主要內容及其應用領域,解決了學習的初衷和用途問題。在深入算法和模型之前,本小節將介紹課程所需的技術棧和準備事項。雖然這些準備看似簡單,但它們對于后續學習至關重要。 首先,我們將使用Python作為…

動態路由實驗新手入門:快速掌握核心知識點

大家好,這里是G-LAB IT實驗室。今天帶大家學習一下華為動態路由實驗配置,新手入門,快速掌握核心知識點! 01、實驗拓撲 02、實驗需求 1.根據拓撲運行對應的路由協議 2.每個路由器都有自己的環回口,宣告的區域不限制 …

Java各大GPS坐標系互轉算法(保證好用)

不好用來捶我,好用的話點個贊鼓勵一下~ /*** 坐標轉換器*/ public class CoordinateConverter {private static final double x_PI 3.14159265358979324 * 3000.0 / 180.0;private static final double PI 3.1415926535897932384626;private static final double…

IDEA不能創建新項目和新模塊

問題: IDEA不管是創建新項目還是新模塊都創建不成功,會報如下圖錯誤 解決方案: 在電腦設置里搜索 “防火墻和網絡保護” ,打開如下圖所示 找到你所安裝的IDEA,更改設置,選中IDEA 最后,確定&am…