数学建模------Matlab数据可视化

发布于:2024-07-05 ⋅ 阅读:(14) ⋅ 点赞:(0)

目录

1.plot函数

(1)函数介绍

(2)参数介绍

(3)图形美化

(4)背景更改

(5)多组绘制

(6)图形叠加

(7)添加图例

(8)添加文本

(9)鼠标交互确定文本位置

(10)添加标题,坐标轴

(11)连续的函数,子图


1.plot函数

(1)函数介绍

这个函数就是我们最经常使用的图形的绘制函数,我们下面是放了一个例子,首先就是这个前面的两行指令,close all,figure都是建议写上的,这个是一个良好的编程习惯,fighre就是生成一个绘图的窗口,close all这个指令在我们绘制多个图形的时候发挥作用,他会在绘制第二章图像的时候,关闭前面的一张图形,避免在原来的基础上面进行绘制;

(2)参数介绍

相关的参数:这个里面是x1表示这个图形的行坐标,y1表示这个图形的列坐标,这个就是这个函数的基础的两个参数,第三个参数实际上是经过复合而成的,就是有样式,颜色和标记复合而成,这三个部分在下面也是有介绍的,我们在第三个参数部分写的or-实际上解释的全面一些,就是o表示这个绘制图形的标记是圆圈形,r表示这个标记的颜色是红色的(其他的颜色在下面的这个图里面也有介绍),-表示这个图形的绘制使用的是实线(还有虚线,长虚线和短虚线的结合,有很多的形式);

(3)图形美化

下面介绍一些关于这个图形的其他的这个技巧和用法:

我们点击这个实时窗口里面的作图指令,这个时候就会出现上面的这个图窗这一行命令,我们可以通过这个把这个图形绘制的更加精美,我们可以添加图例,以及这个背景修改为网格的,还可以添加这个颜色栏目,让我们的这个图形显示更加高级;

(4)背景更改

其他的说明,我们可以直接全选这个代码,点击在命令行里面运行这个代码,这个时候出现的这个图形的背景会是黑色的;

我们可以点击实时脚本里面的右上角有一个箭头

重新生成这个图形之后的背景颜色就会变得好看一些了:可以喝上面的这个直接运行的图形对比一下,就可以发现这个差异;

(5)多组绘制

这个里面,我们的纵坐标是有两个向量组成的,这个时候我们不需要指定曲线绘制的颜色,而这个系统就会使用这个默认的不同的两个颜色区分曲线,但是相反的是,如果我们指明这个颜色,两个曲线的颜色就是一样的,这个就会影响我们的视觉效果;

(6)图形叠加

这个就是hold on hold of指令结合起来进行使用,我们的这个这令就是在一个窗口里面绘制两个图形,我们上面的这个案例就是在一个窗口里面去绘制了一个二次函数的图形,一个指数函数的图形,并设置了不同的线的宽度,hold of结束这个绘制的状态,如果我们没有使用这个hold of就会出现什么后果呢?就是比如我们绘制了两个图形,绘制第三个的时候 ,这个图形会被添加在上面的两个图形里面,而不是在新的窗口里面打开,但是我们最开始的时候有使用这个close all指令,这个指令也是可以解决这个问题的;

这个和我们之前的下面的两个图形区别就是:我们的这个图形是没有外面的边框的,但是我们之前的那个是就像下面的这种边框的;

(7)添加图例

就是使用legend函数添加图例,这个函数的参数就是这个图里的显示内容,但是这个需要注意的就是这个函数参数的顺序和我们绘制图形的顺序必须是一样的,否则就会出现这个绘制图形的绘制对应关系的问题;

(8)添加文本

使用text函数添加文本,这个函数的参数第三个是一个元胞数组,我们可以使用这个cellstr函数把这个字符串转化为元胞数组;

(9)鼠标交互确定文本位置

这个是用的就是gtext函数,就是我们上面的这个内容时直接系统显示,我们是不可以更改这个文本内容的显示位置的;

我们使用gtext函数就是可以通过鼠标的点击位置确定这个文本的放置位置;

这个运行起来之后就会自动生成一个图形窗口,而不是在脚本里面显示,我们可以看到上面有一个十字架形状的线,我们就是通过这个控制文本的放置的位置的;

(10)添加标题,坐标轴

xlabel里面写的是这个横坐标的名字,ylabel写的就是纵坐标的位置,title函数里面就是这个函数的题目的名字;

(11)连续的函数,子图

subplot就是生成子图,子图的数量就是第一个参数2和第二个参数2的乘积,第三个参数表示的就是第几个子图,xlim表示这个横坐标的控制范围;

我们通过这四个子图也可以发现,x2的这个区间的是比x1更加密集的,因此这个图像看起来就会更加连续的,实际上这个连续的图像并不是完全的连续的,而是经过无限的细分之后,这个用直线连接,这个极限的情况看起来好像是连续的,实际上还是使用的直线段连接起来的,只不过分的过于细致,我们的肉眼看不出来罢了;

close all;
figure;
x1=(0:12)*pi/6;
y1=cos(3*x1);
x2=(0:360)*pi/180;
y2=cos(3*x2);
figure(1);
subplot(2,2,1);plot(x1,y1,'o','MarkerSize',3);xlim([0 2*pi]);
subplot(2,2,2);plot(x1,y1,'Linewidth',2);xlim([0 2*pi]);
subplot(2,2,3);plot(x2,y2,'o','MarkerSize',3);xlim([0 2*pi]);
subplot(2,2,4);plot(x2,y2,'Linewidth',2);xlim([0 2*pi]);