MATLAB中的各种文本说明换行操作

MATLAB中的各种文本说明换行操作

在利用MATLAB画图时,我们常常会在图像中添加文本,以对具体图像进行标记或说明。
例如,给图像添加一个title,添加坐标轴说明,利用text, legend,等在图像中对具体图列添加说明等。
然而,在具体运用中,我们常常会遇到文本说明过长,或是影响图像给人的美观感受,或是超出了图像窗口,文本说明不能完全显示。如下图,
在这里插入图片描述

此时我们可以对文本说明进行换行操作,以解决上述问题。
说到换行,萌新小可爱们,可能会在文本说明中直接加入’\n’,

title('我是title,我太长了, \n 我都快超出图像窗口了,我该怎么办?');

然而,MATLAB并不买账,不屑地抛出一句‘你永远不懂我伤悲,像白天不懂夜地黑’。
在这里插入图片描述

正确操作如下:
1)在你想加入换行的地方,将原始的超长文本拆分开;
2)需要换行的地方,利用 sprintf(’\n’)表示换行操作
3)利用’ [ ] ’,将被拆分的文本以及sprintf(’\n’)拼接起来,拼接的地方记得用空格隔开。

具体如下:

title(['我是title,我太长了,' sprintf('\n') ' 我都快超出图像窗口了,我该怎么办?']);

当然也可以这样:
str=['我是title,我太长了,' sprintf('\n') ' 我都快超出图像窗口了,我该怎么办?'];
title(str);
任何需要对文本说明进行换行的地方,都可利用上述方法实现换行操作。例如:
figure
a=ezplot('17*x^2-16*abs(x)*y+17*y^2-225');
set(a,'color','r','LineWidth',6);
str=['我是title,我太长了,' sprintf('\n') ' 我都快超出图像窗口了,我该怎么办?'];
title(str);
xlabel('我是X轴,我一点也不长...');
ylabel(['我是Y轴,我也超级长,' sprintf('\n')  '我都也快超出图像窗口了,我该怎么办?']);
legend(['我是legend,'  sprintf('\n') '下面的text都已经超出了,' sprintf('\n') ' 哈哈哈哈哈哈']);
text(3,-4,['我是text,对不起,' sprintf('\n') '我已经超出了,' sprintf('\n') '哈哈哈哈哈哈']);

在这里插入图片描述
可以看到,text,legend,title等都完成了换行操作。

示例代码:

clc
clear
close all
 
figure
a=ezplot('17*x^2-16*abs(x)*y+17*y^2-225');
 
set(a,'color','r','LineWidth',6);
 
title('我是title,我太长了,我都快超出图像窗口了,我该怎么办?');
xlabel('我是X轴,我一点也不长...');
ylabel('我是Y轴,我也超级长,我都也快超出图像窗口了,我该怎么办?');
legend('我是legend,下面的text都已经超出了,哈哈哈哈哈哈');
text(3,-4,'我是text,对不起,我已经超出了,哈哈哈哈哈哈');
 
figure
a=ezplot('17*x^2-16*abs(x)*y+17*y^2-225');
set(a,'color','r','LineWidth',6);
str=['我是title,我太长了,' sprintf('\n') ' 我都快超出图像窗口了,我该怎么办?'];
title(str);
xlabel('我是X轴,我一点也不长...');
ylabel(['我是Y轴,我也超级长,' sprintf('\n')  '我都也快超出图像窗口了,我该怎么办?']);
legend(['我是legend,'  sprintf('\n') '下面的text都已经超出了,' sprintf('\n') ' 哈哈哈哈哈哈']);
text(3,-4,['我是text,对不起,' sprintf('\n') '我已经超出了,' sprintf('\n') '哈哈哈哈哈哈']);
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值