2

matlabでいくつかの3Dデータをプロットし、x軸と同じ方向を向くようにxlabelを回転させようとしています。現在の3Dフィギュアのビューをある角度に固定し、軌跡とエラーを使用して、ラベルを回転させるための正しい角度を見つけました。

view(al, ae);  % where al and ae is the parameter for the view I want
theta = 52;    % this angle is obtained by trail and error
xlabel('label at some angle', 'rot', theta)

これで、ラベルは正しい方向に向けられましたが、対応する軸の中心に留まらないことがわかりました。つまり、ラベルの中心がx軸の中心と一致しなくなりました。それらを再び整列させる方法はありますか?

実際、ここにリンクの説明を入力するようなことを試みますが、ビューにはあまりうまくいきません。そのリンクのアイデアに従うことで、私は次のようなことを試みます

xf = 1.2*min(get(gca, 'xlim'));   % in my case zero is the middle or the xlim
yf = 1.2*min(get(gca, 'ylim'));   % in my case zero is the middle or the ylim
set(get(gca,'XLabel'),'Position', [0, yf, zf]);
set(get(gca,'YLabel'),'Position', [xf, 0, zf]);
set(get(gca,'xlabel'),'rot',thetax);
set(get(gca,'ylabel'),'rot',thetay);
set(get(gca,'zlabel'),'rot',thetaz);

したがって、上記のコードを使用して、回転する前に、ラベルの位置を対応する軸の中心に近い位置に設定しました。ラベルに文字が1つしかない場合は、機能します。ただし、ラベルが長い場合は、代わりに最初の文字が軸の中心に揃えられます。その理由は、ラベルの長さを考慮していなかったためです。私はすべきだと知っていますが、問題は、軸の中心からラベルをどれだけオフセットする必要があるかということです。フォントのサイズとラベルの合計文字数しかわかりませんが、ラベルの実際の長さを確認するにはどうすればよいですか?ありがとう。

4

0 に答える 0