数据算完了,plot 一敲,窗口里只有一条细线,坐标轴没名字,图例也没有。
matlab plot 最基本的用法是 plot(x, y),x 和 y 长度必须一致,否则报 Vectors must be the same length。只给一个参数 plot(y),横轴就是 1 到 length(y) 的序号。x 可以是向量,也可以传矩阵,矩阵时每一列对应一条线。画多条线可以 plot(x, y1, x, y2),也可以 hold on 之后一条条加。
线型、颜色和标记
第三个参数是线型,plot(x, y, 'r--o') 表示红色虚线带圆点。常用颜色 r 红、g 绿、b 蓝、k 黑,线型 - 实线、-- 虚线、: 点线。线宽用 'LineWidth', 1.5,标记大小用 'MarkerSize', 6,这类参数成对出现,顺序不影响结果。
让图能直接放进报告
补上 xlabel('时间')、ylabel('温度')、title('24 小时温度变化'),再 grid on,多组数据加 legend('A 组', 'B 组')。中文显示成方框,一般是字体问题,set(gca, 'FontName', 'SimHei') 多数情况能解决,改完字体,刻度和图例一起变。导出用 exportgraphics(gcf, 'plot.png', 'Resolution', 300),比截图清楚得多。
两条线量级差太多,比如温度和销量,直接画会有一条贴在地上。用 yyaxis left 和 yyaxis right 分左右轴,颜色和 ylabel 分开设置,图才看得懂。
常见报错对照
- Vectors must be the same length:x、y 元素个数不一样,用 length 检查。
- Index exceeds the number of array elements:下标从 0 开始了,MATLAB 从 1 开始。
- 图是空的:先看数据里有没有 NaN,NaN 会把整段线断掉。
- 后面的图叠在一起:hold on 用完忘了 hold off。
多图排布用 subplot(2, 2, 1),两行两列的第一格,编号从左到右、从上到下。子图太挤就调 sgtitle 或者手动改 Position 参数。
matlab plot 的门槛不高,先把线画出来,再补坐标轴、图例、导出。样式可以慢慢调,数据长度和下标这两处错先排掉,能省很多时间。