我想要一行以一条线为中心的文字。我试过这个:
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')
文本与右侧的行对齐,但不在左侧。上图是屏幕截图。我没有在图的已保存版本中始终存在此问题。
有没有办法将文字放在一条线上?我并不担心现在调整数字的大小,但我想使用默认字体。
答案 0 :(得分:1)
似乎不可能任意精确地定位文本。我尝试获取文本大小和绘图线并相应地重新定位文本。有关文本属性的更多信息here。
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]);