202MATLAB:老码农教你简单粗暴画图大法
MATLAB 画图?hold on 一把梭!
别跟我提什么 subplot、tiledlayout,都是些花架子,看着唬人,用起来Bug一大堆。在 202matlab 里,最简单直接的办法就是 hold on。记住,简单才是王道!
首先,画第一张图:
plot(x, y1);
然后,输入 hold on:
hold on
接着,画第二张图:
plot(x, y2);
完事儿。就这么简单!
hold on 工作原理:别刷新,继续画!
hold on 的意思就是“保持住当前的坐标轴,别给我刷新”。后续的绘图命令都会叠加到当前的图上。你可以理解为,MATLAB 默认每次绘图都会新建一个图层,而 hold on 就是告诉它:“嘿,别新建了,就在这层上继续画!”
hold on 的坑:坐标轴不对劲?手动调!
当然,hold on 也不是万能的。最常见的问题就是两张图的坐标轴范围不一样,导致一张图被压扁了,或者根本看不见。这时候,你需要手动调整坐标轴范围:
axis([xmin, xmax, ymin, ymax]);
xmin、xmax、ymin、ymax 分别是你想要的坐标轴的最小值和最大值。你需要根据你的数据范围,手动设置这些值,让两张图都能清晰地显示出来。
举个例子,假设你的第一张图的 y 轴范围是 0 到 1,第二张图的 y 轴范围是 -10 到 10,那么你就可以这样设置:
axis([min(x), max(x), -10, 10]);
min(x) 和 max(x) 分别是 x 轴的最小值和最大值,-10 和 10 是 y 轴的最小值和最大值。这样就能保证两张图都在同一个坐标系下,不会出现被压扁的情况。
subplot 和 tiledlayout? 谁爱用谁用!
别跟我说什么 subplot 和 tiledlayout,看着像是能把多个图放在一起,实际上用起来麻烦得要死。你要设置行数、列数,还要算每个图的位置,一不小心就出错。而且,你想单独调整某个图的坐标轴、标题,还得费半天劲去找对应的句柄。简直是浪费时间!
当然,如果你非要用,我也拦不住你。但是,出了问题别来找我,我可没空帮你debug这些花架子。
多张图叠加?颜色和线型要分清!
如果你要画很多张图,颜色可能会不够用,或者颜色太接近,分不清。这时候,你可以手动设置颜色和线型:
plot(x, y3, 'r'); % 红色
plot(x, y4, 'g--'); % 绿色虚线
'r' 代表红色,'g--' 代表绿色虚线。MATLAB 支持很多颜色和线型,自己查 MATLAB 文档。记住,颜色和线型要选得醒目一点,方便区分。
你也可以用 ColorOrder 和 LineStyleOrder 属性自定义颜色和线型序列,但这有点超出“简单”的范畴了,所以我不推荐。
总结:简单就是美!
总而言之,言而总之,在 202matlab 这种老版本里,能用最简单的办法解决问题,就别去折腾那些花里胡哨的玩意儿。记住,简单就是美!别被那些“最佳实践”迷惑了,真正能解决问题的方法才是好方法。hold on 虽然土,但是管用啊!