Matlab 在同一个figure 如何绘制 两条曲线(值域不一样的)

Matlab 在同一个figure 如何绘制 两条曲线(值域不一样的)

这是我想要的:

figure(1);
x = 0:0.01:20;
y1 = 200*exp(-0.05*x).*sin(x);
y2 = 0.8*exp(-0.5*x).*sin(10*x);
[AX,H1,H2] = plotyy(x,y1,x,y2,'plot');
set(get(AX(1),'Ylabel'),'String','Slow Decay');%设置左边的y轴标签
set(get(AX(2),'Ylabel'),'String','Fast Decay');%设置右边的y轴标签
xlabel('Time (\musec)');
title('Multiple Decay Rates');
set(H1,'Linestyle','--');%设置曲线1的线型
set(H2,'Linestyle',':');%设置曲线2的线型

这不是我想要的:

在MATLAB中,如果你想在同一个figure中绘制两条值域不同的曲线,你可以使用plot函数,并通过调整ylim(或axis)来确保两条曲线在各自的范围内都可见。这里有一个简单的例子说明如何操作:

假设你有两组数据,一组值域在0到1之间,另一组值域在10到100之间:

% 假设这是你的数据
x = 0:0.1:10; % x轴数据
y1 = sin(x); % 值域在-1到1之间的数据
y2 = 10 + 10*x.^2; % 值域在10到100之间的数据

% 创建一个新的figure
figure;

% 绘制第一条曲线
plot(x, y1, 'b-'); % 蓝色实线
hold on; % 保持当前图形,以便在同一figure上继续绘图

% 绘制第二条曲线,并调整y轴范围以显示两条曲线
plot(x, y2, 'r--'); % 红色虚线

% 设置y轴的范围以同时显示两条曲线
ylim([min([min(y1), min(y2)-5]), max([max(y1), max(y2)+5])]); % 这里的-5和+5是为了给两条曲线之间留出一些空间

% 添加图例
legend('y1 = sin(x)', 'y2 = 10 + 10*x^2');

% 添加标题和轴标签
title('两条值域不同的曲线');
xlabel('x');
ylabel('y');

% 保持图形打开以便查看
hold off;

在上面的代码中,我使用ylim函数设置了y轴的范围,使其能够同时显示两条曲线。注意,我稍微调整了y轴的范围(通过添加-5+5),以便为两条曲线之间留出一些空间,使它们都能清晰地看到。当然,这个调整是可选的,取决于你希望如何在图形中展示这两条曲线。

另外,使用hold on命令可以在同一个figure上连续绘制多个图形元素,而hold off则释放这个锁定状态。legend函数用于添加图例,说明每条曲线对应的数据源。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值