matlab如何画图:基础命令与样式调整

matlab如何画图优先使用plot函数绘制二维线图,准备好长度一致的x向量与y向量,在命令行或脚本中输入plot(x,y)就能生成基础图像,搭配figure开启独立画布、holdon实现多曲线叠加,holdoff关闭叠加状态,xlabel、ylabel、title用来添加坐标轴标签和图标题,legend设置图例,gridon开启网格;该方案适合数值仿真、实验离散数据的可视化,不适合百万级以上超大数组直接绘图,大数据量绘图会出现界面卡顿、渲染耗时明显变长的情况,三维曲面、直方图、热图需要切换surf、histogram、heatmap等专用函数,各类函数的参数写法相互独立,不能混用核心绘图语法。

matlab如何画图:二维基础绘图实操

你先在脚本里定义自变量,例如x=linspace(0,2*pi,200),linspace是均匀取点函数,200代表在0到2π之间生成200个采样点,采样点数量太少会让曲线出现折线感,采样点过多会轻微拖慢渲染速度。接着定义因变量y=sin(x),输入plot(x,y),运行后弹出Figure窗口显示正弦曲线。想在同一张图放第二条曲线,在第一条绘图命令后面加上holdon,再写plot(x,cos(x)),两条曲线默认自动分配不同颜色,holdoff写在全部绘图语句末尾,避免后续新图持续叠加在当前画布。

plot支持简写样式参数,放在坐标变量后面,格式为plot(x,y,'样式标记颜色')。

  • 'r-'红色实线
  • 'b--'蓝色虚线
  • 'ko'黑色空心圆点标记
  • 'g*'绿色星号标记

样式参数可以自由组合,标记大小、线条粗细用'LineWidth'和'MarkerSize'键值对设置,例如plot(x,y,'r-','LineWidth',1.5,'MarkerSize',4),线条宽度默认是0.5,调到1.5到2之间在论文配图里观感更好。

matlab如何画图:图像标注与格式控制

坐标轴标注、标题、图例属于图像的辅助信息命令,单独写在plot语句之后,不会重新生成画布。xlabel('自变量x')和ylabel('函数值y')分别绑定横纵轴文字,title('正弦与余弦曲线')放在标注命令前或后都可以,图例命令legend('sin(x)','cos(x)')里的文字顺序,必须和绘图命令的先后顺序保持一致,顺序颠倒会造成图例和曲线对应错误。gridon打开背景网格,gridoff关闭网格,axis([xminxmaxyminymax])用来手动锁定坐标轴范围,不设置时matlab会自动适配数据区间。

导出图片使用print函数,print(gcf,'sin图','-dpng','-r300'),gcf指代当前画布,-dpng代表输出png格式,-r300设置300dpi分辨率,适合论文投稿;如果需要矢量图,把参数换成-deps,生成eps文件,矢量图放大后不会模糊。不要直接截图保存,截图分辨率较低,文字边缘容易发虚。

matlab如何画图:不同绘图函数对比

函数名称绘图类型适合场景数据要求
plot二维线图、散点连线连续函数曲线、时序变化x、y向量长度相同
scatter散点图离散实验数据、相关性分析x、y向量长度相同
surf三维曲面图二元函数、二维场分布X、Y为网格矩阵,Z同维度
histogram直方图单组数据分布统计一维数据向量

scatter和plot的散点用法有明显区别,plot加标记参数会把点用线条连起来,scatter只绘制散点,默认不生成连线,你做相关性分析时优先选用scatter。surf绘图前必须用meshgrid生成网格矩阵,直接传入一维向量会报错,这是新手高频出错点,有人直接把一维x、y传入surf,代码运行抛出维度不匹配提示,无法生成曲面。

matlab如何画图:画布与多子图设置

figure单独新建画布,figure(2)代表编号为2的窗口,多个figure之间相互独立,不会互相覆盖。subplot用来在一张画布上排布多张子图,语法subplot(m,n,p),m是行数,n是列数,p是子图序号,序号从左上角开始从左向右、从上往下计数。subplot(2,2,1)代表2行2列布局里的第一张子图,写完subplot之后再写plot和标注命令,子图内部的样式设置互不干扰。

子图之间默认间距偏紧凑,标题和坐标轴文字容易重叠,你可以在全部绘图完成后,打开Figure窗口的工具菜单,选择调整子图间距,或者在代码里使用tightlist函数自动优化布局,自动调整的效果在大多数情况下能够满足报告配图需求。

脚本绘图效率高于实时脚本。

实时脚本的绘图窗口嵌入在文本中,多次运行、反复修改参数时刷新速度偏慢,独立脚本配合单独figure窗口,调试图像样式、反复导出文件的效率更高。实时脚本更适合边写代码边看结果的教学演示场景,批量生成几十张图像的自动化任务,优先选择m脚本文件搭配循环和print导出命令。

该方法的适用边界是matlabR2016b及之后版本,旧版本部分函数参数、图例位置设置语法存在差异,heatmap这类函数在R2016b之前版本没有内置支持,需要额外安装第三方工具包。

敬慕百科汇集百科知识与游戏文化,带你发现世界的每一个精彩角落。

想要了解更多关于matlab如何画图的文章欢迎访问:百科