it-swarm-ja.com

ylabelに長い文字列を使用する場合、Matlab図のylabelの左側にある当たり障りのないスペースを削除するにはどうすればよいですか?

Matlab 2014bでいくつかのプロットを行っていますが、そのうちの1つでは、時間に対して5つの変数をプロットしており、速度(rad/sec)、電圧(V)などの5つの名前を指定したいと考えています。 yラベル、しかし、あなたが写真で見ることができるように、私は左側に余分な当たり障りのないスペースを得て、それを取り除くのに苦労しています。 Sample figure

これは、状況を説明するための実用的なコードです。

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
AlFagera

次のように、Figureウィンドウの軸の位置を微調整できます(サンプルコードを使用)。

_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_に設定しています。これらの座標はw.r.tで正規化されています。あなたのフィギュアサイズに。

プロットの例

初期状況

_ax.Position_を_[0.25, 0.15, 0.7, 0.75]_に設定すると、最初のようになります。

enter image description here

解決

_ax.Position_を_[0.1, 0.1, 0.85, 0.85]_に設定すると、空白がはるかに少なくなります。

enter image description here

ノート

このMATLABヘルプリンク は、軸の位置を「自動的に」定義して、より厳密にフィットさせる方法を説明しています。
Axesに関するこのMATLABヘルプリンク Axesオブジェクトで使用できるパラメーターについて説明しています。
Stackoverflowでのこの回答 2014bより前のMATLABバージョンでドット表記を使用する方法を見つけるのに役立ちました。 どうやらhandle()の使用は、setおよびgetメソッドよりも高速です。

1