matlab 'text' 命令中的文本对齐
Alignment of text in matlab 'text' command
我想在带有“:”符号垂直对齐的 matlab 图形上打印以下文本:
Total Events: 1234
Mean Value: 1234
Standard Deviation: 1234
1st Quartile: 1234
...
...
我正在使用 text
函数并尝试手动插入空格,但它们似乎从来没有完美对齐并且看起来呈波浪形。
任何帮助,请。
strings = {'Total Events', 'Mean Value', 'Standard Deviation', '1st Quartile'};
max_len = max( cellfun( @numel, strings ) );
fs = sprintf( '%% %ds: 1234\n', max_len );
cellfun( @(x) fprintf(1,fs,x), strings );
结果:
Total Events: 1234
Mean Value: 1234
Standard Deviation: 1234
1st Quartile: 1234
如你所见,右对齐的命令是
sprintf( '% 18s: 1234', strings{1} )
所以,最终在你的 text
命令中,你可以使用 sprintf
:
来格式化一个字符串,而不是明确地写一个字符串
text( 0, 0, sprintf( '% 18s: %d', strings{ii}, values(ii) );
假设您有 strings
- 字符串元胞数组和相同长度的数组 values
以及要打印的对应值。
您可以使用固定宽度的字体并使用元胞数组将文本放在不同的行上:
text( 0, 0, { ' Total Events: 1234' ...
' Mean Value: 1234' ...
'Standard Deviation: 1234' ...
' 1st Quartile: 1234' }, 'FontName', 'FixedWidth' )
我想在带有“:”符号垂直对齐的 matlab 图形上打印以下文本:
Total Events: 1234
Mean Value: 1234
Standard Deviation: 1234
1st Quartile: 1234
...
...
我正在使用 text
函数并尝试手动插入空格,但它们似乎从来没有完美对齐并且看起来呈波浪形。
任何帮助,请。
strings = {'Total Events', 'Mean Value', 'Standard Deviation', '1st Quartile'};
max_len = max( cellfun( @numel, strings ) );
fs = sprintf( '%% %ds: 1234\n', max_len );
cellfun( @(x) fprintf(1,fs,x), strings );
结果:
Total Events: 1234
Mean Value: 1234
Standard Deviation: 1234
1st Quartile: 1234
如你所见,右对齐的命令是
sprintf( '% 18s: 1234', strings{1} )
所以,最终在你的 text
命令中,你可以使用 sprintf
:
text( 0, 0, sprintf( '% 18s: %d', strings{ii}, values(ii) );
假设您有 strings
- 字符串元胞数组和相同长度的数组 values
以及要打印的对应值。
您可以使用固定宽度的字体并使用元胞数组将文本放在不同的行上:
text( 0, 0, { ' Total Events: 1234' ...
' Mean Value: 1234' ...
'Standard Deviation: 1234' ...
' 1st Quartile: 1234' }, 'FontName', 'FixedWidth' )