如何在MATLAB中将多个绘图叠加在同一张图并添加对应图例
MATLAB多曲线叠加绘图实现方案
你可以通过开启图形保持、统一坐标轴配置、指定图例属性的方式完成需求,完整实现代码如下:
%% 初始化画布,开启图形保持功能 figure hold on grid on % 可选,添加网格方便读值 %% 公共参数配置 as = 9.5; x = linspace(500, 15000); % 统一x范围,匹配两张图的有效区间 %% 绘制第一条曲线(原绘图1) f1 = @(x,a) 683.037971206./x + 1.96604876786e-4*x./a; y1 = bsxfun(f1,x(:),as); plot(x, y1, 'LineWidth',1.5, 'DisplayName','曲线1:$f_1(x)=\frac{683.04}{x} + \frac{1.97\times 10^{-4}x}{a}$'); %% 绘制第二条曲线(原绘图2) f2 = @(x,a) 7.51619693312e-5*x; y2 = bsxfun(f2,x(:),as); plot(x, y2, 'LineWidth',1.5, 'DisplayName','曲线2:$f_2(x)=7.52\times 10^{-5}x$'); %% 统一设置坐标轴标注(保留原有LaTeX格式) xlabel(gca, '$W_{to}/S_w$ (Pa)', ... 'Interpreter', 'latex', ... 'FontName', 'Times New Roman', ... 'FontSize', 14, ... 'FontWeight', 'normal', ... 'FontAngle', 'normal') ylabel(gca, '$T_{to}/W_{to}$', ... 'Interpreter', 'latex', ... 'FontName', 'Times New Roman', ... 'FontSize', 14, ... 'FontWeight', 'normal', ... 'FontAngle', 'normal') %% 生成图例,开启LaTeX解释器匹配风格 legend('Interpreter','latex','FontSize',12,'Location','best') %% 关闭图形保持 hold off
补充说明
- 若需添加更多曲线,只需在
hold on生效区间内新增对应plot语句,同步指定DisplayName属性即可自动纳入图例 - 可在
plot参数中自定义曲线的颜色、线型,例如添加'r--'参数设置为红色虚线,进一步提升不同曲线的区分度 - 若图例遮挡曲线内容,可修改
legend的Location参数,可选值包括'northeast'、'southwest'等,使用'best'参数会自动选择无数据遮挡的最优位置
内容的提问来源于stack exchange,提问作者stevederekson555
相关产品推荐
相关产品推荐

