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.8
と0.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()
よりも高速になります。set
get