在绘图中的两条垂直线之间对齐文本
Align text between two vertical lines in plot
如何使用 text()
(或任何更合适的函数)将文本直接置于指定的间隔符之间?基本上,我只想在 text()
中使用 x
和 y
参数,但使用文本的 'center'。
我试过了:附加空格不起作用,基于字符数的移位不一致,文档没有提到任何关于将字符串居中对齐的内容。
%% create figure
x=[2 5]; %spacer var
figure; hold on;
axis([0 10 0 10])
%create lines based on spacer var
line([x(1) x(1)],ylim)
line([x(2) x(2)],ylim)
%silly formatting
grid on
axis square
xticks(0:10); yticks(0:10);
set(findall(gcf,'type','line'),'linewidth',3)
%generate text between vertical lines
y = ylim; %get ylimits
text(mean([0 x(1)]),y(2)*.8,'Label_1','FontSize',10)
text(mean([x(1) x(2)]),y(2)*.8,'Label_2','FontSize',10)
文本居中对齐
使用 'HorizontalAlignment'
属性 并将其设置为 'center'
可能有助于实现由垂直线划分的部分之间的对齐。这里我将每个文本注释初始化为变量 Text_1
和 Text_2
并分别设置它们的 'HorizontalAlignment'
属性。
代码片段:
Text_1 = text(mean([0 x(1)]),y(2)*.8,'Label_1','FontSize',10);
Text_2 = text(mean([x(1) x(2)]),y(2)*.8,'Label_2','FontSize',10);
set(Text_1,'HorizontalAlignment','center');
set(Text_2,'HorizontalAlignment','center');
完整脚本:
%% create figure
x=[2 5]; %spacer var
figure; hold on;
axis([0 10 0 10])
%create lines based on spacer var
line([x(1) x(1)],ylim)
line([x(2) x(2)],ylim)
%silly formatting
grid on
axis square
xticks(0:10); yticks(0:10);
set(findall(gcf,'type','line'),'linewidth',3)
%generate text between vertical lines
y = ylim; %get ylimits
Text_1 = text(mean([0 x(1)]),y(2)*.8,'Label_1','FontSize',10);
Text_2 = text(mean([x(1) x(2)]),y(2)*.8,'Label_2','FontSize',10);
set(Text_1,'HorizontalAlignment','center');
set(Text_2,'HorizontalAlignment','center');
运行 使用 MATLAB R2019b
如何使用 text()
(或任何更合适的函数)将文本直接置于指定的间隔符之间?基本上,我只想在 text()
中使用 x
和 y
参数,但使用文本的 'center'。
我试过了:附加空格不起作用,基于字符数的移位不一致,文档没有提到任何关于将字符串居中对齐的内容。
%% create figure
x=[2 5]; %spacer var
figure; hold on;
axis([0 10 0 10])
%create lines based on spacer var
line([x(1) x(1)],ylim)
line([x(2) x(2)],ylim)
%silly formatting
grid on
axis square
xticks(0:10); yticks(0:10);
set(findall(gcf,'type','line'),'linewidth',3)
%generate text between vertical lines
y = ylim; %get ylimits
text(mean([0 x(1)]),y(2)*.8,'Label_1','FontSize',10)
text(mean([x(1) x(2)]),y(2)*.8,'Label_2','FontSize',10)
文本居中对齐
使用 'HorizontalAlignment'
属性 并将其设置为 'center'
可能有助于实现由垂直线划分的部分之间的对齐。这里我将每个文本注释初始化为变量 Text_1
和 Text_2
并分别设置它们的 'HorizontalAlignment'
属性。
代码片段:
Text_1 = text(mean([0 x(1)]),y(2)*.8,'Label_1','FontSize',10);
Text_2 = text(mean([x(1) x(2)]),y(2)*.8,'Label_2','FontSize',10);
set(Text_1,'HorizontalAlignment','center');
set(Text_2,'HorizontalAlignment','center');
完整脚本:
%% create figure
x=[2 5]; %spacer var
figure; hold on;
axis([0 10 0 10])
%create lines based on spacer var
line([x(1) x(1)],ylim)
line([x(2) x(2)],ylim)
%silly formatting
grid on
axis square
xticks(0:10); yticks(0:10);
set(findall(gcf,'type','line'),'linewidth',3)
%generate text between vertical lines
y = ylim; %get ylimits
Text_1 = text(mean([0 x(1)]),y(2)*.8,'Label_1','FontSize',10);
Text_2 = text(mean([x(1) x(2)]),y(2)*.8,'Label_2','FontSize',10);
set(Text_1,'HorizontalAlignment','center');
set(Text_2,'HorizontalAlignment','center');
运行 使用 MATLAB R2019b