程式碼解釋

程式碼解釋

我正在 Matlab 2014b 中繪製一些圖,其中我繪製了 5 個變數與時間的關係圖,並希望在圖上指定 5 個名稱,例如速度(rad/sec)、電壓(V)等。在圖片中看到的那樣,y 標籤的左側有額外的平淡空間,並且正在努力將其刪除。範例圖

這是一個工作代碼,只是為了解釋這種情況:

clear all; clc; close all;
x = rand(8,1);
y = rand(8,1);

figure
plot(x,y)
xlabel('time (s)')
ylabel('$x$ (m), $\theta$ (rad), $\dot{x}$ (m/s),$\dot{\theta}$ (rad/s), $\dot{S}_{gen}$(W/K)','Interpreter', 'latex','fontsize',10)
grid

如有任何建議,我們將事先高度讚賞。

答案1

您可以如下調整圖形視窗中軸的位置(使用範例程式碼):

clear all; clc; close all;
x = rand(8,1);
y = rand(8,1);

figure;
ax = handle(gca);
ax.Position = [0.1, 0.15, 0.8, 0.75];
plot(x,y)
xlabel('time (s)')
ylabel('$x$ (m), $\theta$ (rad), $\dot{x}$ (m/s),$\dot{\theta}$ (rad/s), $\dot{S}_{gen}$(W/K)','Interpreter', 'latex','fontsize',10)
grid

程式碼解釋

ax = handle(gca);軸句柄儲存在變數中ax,以便稍後可以更改它。

您可以ax.Position [0.1, 0.15, 0.8, 0.75];變更手把所引用的圖中軸的位置ax。上面的範例將左下點設定為座標0.1, 0.15,寬度和高度分別為0.80.75。這些座標根據您的身材尺寸進行標準化。

範例圖

初始情況

如果你設定ax.Position[0.25, 0.15, 0.7, 0.75]你會得到像最初一樣的東西:

在此輸入影像描述

解決方案

如果你設定 ,ax.Position[0.1, 0.1, 0.85, 0.85]會得到更少的空白:

在此輸入影像描述

筆記

此 MATLAB 幫助鏈接解釋如何「自動」定義軸位置以使配合更緊密。
此 MATLAB 幫助連結在軸上解釋了座標區物件中可用的參數。
這個答案在 Stackoverflow幫我找到了在 2014b 之前的 MATLAB 版本中使用點表示法的方法。顯然使用handle()也比setget方法更快。

相關內容