コードの説明

コードの説明

Matlab 2014b でいくつかのプロットを作成しています。そのうちの 1 つで、5 つの変数と時間をプロットし、速度 (rad/sec)、電圧 (V) などの 5 つの名前を 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ヘルプリンクは軸についてaxes オブジェクトで使用できるパラメータについて説明します。
Stackoverflowのこの回答MATLAB 2014b より前のバージョンでドット表記を使用する方法を見つけるのに役立ちました。どうやらを使用すると、およびメソッドhandle()よりも高速になります。setget

関連情報