最新要闻

广告

手机

iphone11大小尺寸是多少?苹果iPhone11和iPhone13的区别是什么?

iphone11大小尺寸是多少?苹果iPhone11和iPhone13的区别是什么?

警方通报辅警执法直播中被撞飞:犯罪嫌疑人已投案

警方通报辅警执法直播中被撞飞:犯罪嫌疑人已投案

家电

前沿热点:Matlab导入多个.mat文件进行画图

来源:博客园

@

目录
  • 0. 实验背景
  • 1. 导入.mat文件存储
    • 1.1 导入.mat文件及作图最简单的方式:
    • 1.2 导入.mat文件及作图的脚本代码
  • 2. plot画图总结
    • 2.1 画散点图
      • 2.1.1 点形状
      • 2.1.2 点大小
      • 2.1.3 点颜色
      • 2.1.4 点填充
    • 2.2 画折线图
      • 2.2.1 折线形状
      • 2.2.2 折线粗细
      • 2.2.3 折线颜色
    • 2.3 多条线条颜色组合
      • 2.3.1 matlab默认配色
      • 2.3.2 自定义RGB
    • 2.4 显示网格
    • 2.5 显示图例
      • 2.5.1 脚本代码写法
      • 2.5.2 figure窗口操作(推荐)
    • 2.6 设置坐标轴
      • 2.6.1 坐标轴名称
      • 2.6.2 坐标轴名称的文字格式(字体、大小、加粗)
      • 2.6.3 坐标轴框线和刻度数字
    • 2.7 画子图(局部放大图)
      • 2.7.1 子图的脚本代码写法
      • 2.7.2 子图的figure窗口操作(推荐)
  • 3. 常见资料参考

0. 实验背景

需要导入多个.mat文件,将多组数据画在一个图中,并设置图例、坐标轴、散点图、折线图、子图等。


(资料图片)

  • 由于存在重复操作,主要使用脚本文件编写代码。
  • figure窗口操作比较简单,脚本文件不好写的部分可用figure窗口操作进行辅助。

1. 导入.mat文件存储

1.1 导入.mat文件及作图最简单的方式:

在matlab工作文件夹区域打开存有.mat文件的文件夹,双击.mat文件则导入该文件。之后使用如下命令可画图:

>>plot(x,y);>>hold on;

多种数据则重复此过程即可。

1.2 导入.mat文件及作图的脚本代码

代码如下,导入6个.mat文件并作图:

%loadm1=load("文件1.mat");m2=load("文件2.mat");m3=load("文件3.mat");m4=load("文件4.mat");m5=load("文件5.mat");m6=load("文件6.mat");%获取数据,这里可以这样写是因为我.mat文件中只存在两个属性x和y,不知道自己.mat文件中有哪些属性的话,可以点击工作区的m1~m6变量中的任何一个。x1=m1.x;y1=m1.y;x2=m2.x;y2=m2.y;x3=m3.x;y3=m3.y;x4=m4.x;y4=m4.y;x5=m5.x;y5=m5.y;x6=m6.x;y6=m6.y;%多组数据画图plot(x1,y1);hold on;%hold on使得一张图中可以显示多个不同的图像线条plot(x2,y2);hold on;plot(x3,y3);hold on;plot(x4,y4);hold on;plot(x5,y5);hold on;plot(x6,y6);hold on;

查看.mat形成的结构体的属性的方式如下:

2. plot画图总结

2.1 画散点图

画散点图可以使用scatter()函数,也可使用plot()函数,本文主要介绍使用plot()函数的方法。

2.1.1 点形状

matlab中常用的点形状如下所示:

+                 "+"号o                 空心圆*                 "*"号.                 实心点,比空心圆小 x                 "x"号square or s   空心正方形diamond or d  空心菱形^                 空心上三角,尖头朝上v                 空心下三角,尖头朝下>                 空心右三角,尖头朝右<                 空心左三角,尖头朝左pentagram or p  空心五角星hexagram or h   空心六边形

plot函数实例:

plot(x,y,"+");%绘制散点图,散点图形状为"+"。plot(x,y,"s");%绘制散点图,散点图形状为空心正方形,等同于plot(x,y,"square");

2.1.2 点大小

属性:"Markersize"

plot函数实例:

plot(x,y,"+","Markersize",4);%绘制散点图,点大小为4

2.1.3 点颜色

常用颜色:r   Redg   Greenb   Bluec   Cyanm   Magentay   Yellowk   Blackw   White

plot函数实例:

%1.使用默认颜色plot(x,y,"+r","Markersize",4);%绘制散点图,点大小为4,颜色为红色%2.使用默认颜色的第二种方式:plot(x,y,"+","Markersize",4);%绘制散点图,点大小为4                             %颜色为多组线条的默认值,第一条为蓝色,第二条为橙色,...,详见2.3.1节%3.自定义颜色,RGB格式为[r g b],每个数值为0~1之间的小数值plot(x,y,"+","Color",[0 0.321 0],"Markersize",4)%绘制散点图,点大小为4                                                %颜色为自定义的颜色,取色方式见2.3.2小节

注意,在用plot绘制散点图添加各种属性的时候,点形状应该摆在第一位,如果先设置"Color"或者"Markersize"等属性对,则会导致点形状无法和对应属性配对。

(实际上是我不太知道plot函数里点形状的属性名称,所以这样写,如果能知道这个属性名称的话就无所谓了。)

2.1.4 点填充

属性:"MarkerFaceColor"

plot函数实例:

plot(x,y,"s","Color",[0 0.321 1],...  %...用来拆分长命令    "Markersize",4,"MarkerFaceColor",[0 0.321 1]);%空心正方形内部填充和边框同样的颜色

2.2 画折线图

画折线图主要使用的是plot()函数。

2.2.1 折线形状

-      实线--     虚线:      点线(短虚线)-.     点段线(类似-·-·-)

plot函数实例:

% 1.常用方式plot(x,y,"--");%绘制折线图,线为虚线% 2.突出每个点的方式plot(x,y,"--s");%线为虚线,每个点为空心正方形,点的属性设置还是可以参考2.1的参数设置。

2.2.2 折线粗细

属性:"linewidth"

plot函数实例:

% 1.常用方式plot(x,y,"--s",...    "linewidth",3);%设置线的粗细

2.2.3 折线颜色

和点的颜色设置类似。

常用颜色:r   Redg   Greenb   Bluec   Cyanm   Magentay   Yellowk   Blackw   White

plot函数实例:

%1.使用默认颜色plot(x,y,"--+r");%2.使用默认颜色的第二种方式:plot(x,y,"--+");%颜色为多组线条的默认值,第一条为蓝色,第二条为橙色,...,详见2.3.1节%3.自定义颜色,RGB格式为[r g b],每个数值为0~1之间的小数值plot(x,y,"--+","Color",[0 0.321 1])%颜色为自定义的颜色,取色方式见2.3.2小节

注意,在用plot绘制折线图添加各种属性的时候,如果只有线形状设置,可用属性对"linestyle","--"摆在任何位置,如果还有点形状的设置,则应该摆在x,y之后的第一位,否则会导致点形状无法和对应属性配对。

2.3 多条线条颜色组合

matlab中作图有的时候会有多组数据分别作图,呈现在一张图中,此时颜色的搭配就能够体现出图像的美观。

2.3.1 matlab默认配色

matlab默认配色如下所示:对应的rgb数值为:

[[0    0.4470    0.7410][0.8500    0.3250    0.0980][0.9290    0.6940    0.1250][0.4940    0.1840    0.5560][0.4660    0.6740    0.1880][0.3010    0.7450    0.9330][0.6350    0.0780    0.1840]]

plot函数实例:

plot(x,y,"--+");%该线条为第几条,就对应哪种颜色

2.3.2 自定义RGB

用户可使用[value1 value2 value3]的三元组方式设置任意颜色。

matlab中RGB数值需要01之间,而一般的颜色RGB数值为0255之间。两种格式的转变也很简单:

常见格式:[134 255 0]转为matlab可用格式:[134/255 255/255 0/255]=[0.5255 1 0]而从matlab可用格式转为常见格式则*255即可。

下面主要介绍一下常用的取色方式:

  1. PS取色

将截图用PS打开,之后按照下图操作:2. PPT取色

将截图插入ppt中,之后按照下图操作

plot函数实例:

plot(x,y,"--+","Color",[0 0.321 1])%颜色为自定义的颜色

2.4 显示网格

//显示网格线grid on;%默认颜色为灰色//隐藏网格线(默认)grid off;

2.5 显示图例

2.5.1 脚本代码写法

% 一般写法legend("图1的标注,支持latex格式","图2的标注,支持latex格式",……,"图n的标注,支持latex格式");

legend也有很多参数可供调整,例如如下代码:

lgd=legend("图1的标注,支持latex格式","图2的标注,支持latex格式",……,"图n的标注,支持latex格式",...    "Location","NorthOutside", ... %图例的位置    % "Position",[左下点x相对坐标 左下点y相对坐标 图例相对宽度 图例相对高度]; %图例位置的另一种写法,可通过数值修改自由移动图例位置,Position和Location二者选择其一。    "Orientation","horizontal",... % 水平显示还是垂直显示    "FontName","Times New Roman","FontSize",23, "FontWeight","bold");% 图例字体

2.5.2 figure窗口操作(推荐)

  1. 显示图例
  • 使用plot()函数在脚本或者命令行生成figure图像;
  • 点击如下所示的按钮显示图例:
  1. 图例属性设置
  • 点击如下按钮,为后面选中图例对象做准备:

  • 选择图例对象,右键,选择“打开属性检查器”

  • 可在属性检查器中编辑修改图例边框、图例位置等信息

  • 点击图例之后,如果四周出现正方形标识,可直接拖动legend对象改变位置,或者选择四个角的任意一个改变图例大小。

  • 附上legend属性和取值的参考

2.6 设置坐标轴

2.6.1 坐标轴名称

%设置x坐标轴xlabel("x坐标轴名称,支持latex格式");%设置y坐标轴ylabel("y坐标轴名称,支持latex格式");

2.6.2 坐标轴名称的文字格式(字体、大小、加粗)

xlabel("x坐标轴名称,支持latex格式",...    "FontName","Times New Roman","FontSize",23,"FontWeight","bold");    %分别设置字体风格、字体大小,字体效果(加粗)ylabel("y坐标轴名称,支持latex格式",...    "FontName","Times New Roman","FontSize",23,"FontWeight","bold");

2.6.3 坐标轴框线和刻度数字

%设置刻度数字set(gca,"FontName","Times New Roman","Fontsize",23,"FontWeight","bold");        %设置字体风格、字体大小、字体效果(加粗)%坐标轴框线加粗set(gca,"linewidth",1.5);%1.5位置可自由设置合理的数值

2.7 画子图(局部放大图)

2.7.1 子图的脚本代码写法

有的时候需要显示局部数据,因此需要在大图中嵌入子图。

%显示子图axes("position",[0.15,0.55,0.2,0.23]);%设置子图的出现位置plot(x,y,"s","Color",[0.9216,0.7098,0.1294],...    "Markersize",4,"MarkerFaceColor",[0.9216,0.7098,0.1294]);%设置子图的数据、图形状、颜色等属性hold on;

我们通常会在论文图中,看到子图和大图局部之间存在虚线框和箭头,提示读者子图放大的是哪一部分的图像。脚本代码如下:

%子图提示图形--虚线框xi=[214 214 216 216];%设置左下、左上、右上、右下(顺时针方向)的x绝对坐标yi=[0 3.3 3.3 0];%设置左下、左上、右上、右下(顺时针方向)的y绝对坐标plot(xi,yi,"b","LineWidth",2,"LineStyle","--");%画出虚线框,颜色为蓝色,线宽度为2,线形状为虚线%子图提示图形--箭头annotation("arrow",...%设置箭头类型为‘单箭头’,此外还有双箭头等    [0.5,0.37],[0.5,0.7],... %设置箭头起始位置和终止位置,[x1 x2],[y1 y2]表示从起点(x1,y1)到终点(x2,y2),使用的是相对坐标。    "color",[0 0 1],"LineWidth",2);%箭头颜色为蓝色,线条宽度为2

2.7.2 子图的figure窗口操作(推荐)

  • 选择图像整体

  • ctrl+c复制整体,ctrl+v粘贴整体,对于新出现的图像对象调整位置和大小。

  • 对于子图中不需要的实例,我们可以选中,右键选择“删除”

  • 此时,子图的横纵坐标范围依然和主图保持一致。

  • 选择子图对象,右键,选择“打开属性检查器”。设置x轴的坐标范围和数值取值

  • 属性检查器里面还可以设置很多其他东西,具体和设置图像的操作差不多,大家可以自己探索哦!

  • 辅助提示的虚线框和箭头,也可以用figure窗口来画。

  • 在figure上方工具栏选择"插入",选择“矩形”或者“箭头”,在图像想作图的为止,鼠标操作拉出图像。

  • 右键,选择“打开属性检查器”,可修改颜色、线型、线宽等参数。修改对应参数之后,虚线框成功画出,且可自由调节位置和大小。

  • 箭头的作图和矩形类似,在工具栏选择“插入”,选择“箭头”,拉出箭头线条,右键选择“打开属性检查器”,改变颜色、线形、线宽等。

3. 常见资料参考

1.mathworks.cn

2.知乎大佬

关键词: 窗口操作 显示图例 文件存储