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
函数用于添加图例,说明每条曲线对应的数据源。