2

行の中央にテキストの文字列を配置したいと思います。私はこれを試しました:

figure
axis([0,10,0,10])
d = 2.81;
center = 5;
line([center - d,center + d],[5,5])
th = text(center,4.9,'mmmmmmmmmmmmmmmmmmmmmm');
set(th,'HorizontalAlignment','center')

テキストが行の中央に配置されていません

テキストは右側では行に揃えられますが、左側では揃えられません。上の画像はスクリーンショットです。フィギュアの保存されたバージョンで一貫してこの問題が発生したわけではありません。

テキストを行の中央に配置する方法はありますか? フィギュアのサイズ変更は今のところ気にしていませんが、デフォルトのフォントを使いたいと思っています。

4

1 に答える 1

1

テキストを任意に正確に配置することはできないようです。テキストのサイズを取得して線を描画し、それに応じてテキストを再配置してみました。テキスト プロパティの詳細については、こちらをご覧ください。

str1 = 'mmmmmmmmmmmmmmmmmmmmmm';
center = 5;
text_line_spacing = 0.2;

figure
axis([0,10,0,10])

% Set text initialy
th = text(0,0,str1);

% Get size of text
ext = get(th, 'Extent');  
% text_width = ext(3);
% text_height = ext(4);

% Draw appropriate line
left = center - ext(3)/2; 
right = center + ext(3)/2;
line([left right], [5 5])

% Reposition original text
set(th, 'Position', [left 5+text_line_spacing]);
于 2013-06-22T19:02:18.317 に答える