我们经常使用matlab画图,但是对matlab画图如何画出来的,我们很少了解,因此本文主要讲述matlab画图背后的原理
图形对象
看到“对象”二字,大家必定不陌生,毕竟都是单生狗(别打我)。。。。
好了不开玩笑了,面向对象编程的思想必大家都知道,例如ava和python等等,都是采用面向对象编程的思想,但是却不知道matlab也是面向对象编程的语言。
图形对象是matlab用来创建可视化数据的组件。每个对象在图形显示中都具有特定的功能和角色。
例如,一个线图包含一个图窗对象、一个坐标区对象和一个图形线条对象。那么就可以通过设置它们的属性来定义图形对象。
图像对象按层次结构组织,如下图所示。图像对象的层次结构本身反映出对象之间的包含关系。
图像对象层次结构
matlab图像对象
- 图像对象是MATLAB用来以图像的形式显示数据的可视化组件。例如,图形可能包含线条、文本和坐标区,所有都显示在图窗窗口中。
- 每个对象都有一个名为句柄的唯一标识符。使用该句柄,您可以通过设置对象属性来操作现有图形对象的特征。您还可以在创建图形对象时指定属性值。通常,使用如 plot、bar、scatter等绘图函数创建图形对象。
图形由具体对象组成
- 当您创建图形时,例如通过调用 plot 函数创建, MATLAB 会自动执行一系列步骤生成图形。这些步骤包括创建对象和将这些对象属性值设置为适合特定图形的
图形对象的组织
这些图形对象按层次结构组织,如下图所示。
图形对象的层次结构本身反映出对象之间的包含关系。每个对象在图形显示中都具有特定角色。
例如,您使用 plot函数创建线图。坐标区对象定义了表示数据的线条的参考框架。图窗是显示图形的窗口。图窗包含坐标区,坐标区包含线条、文本、图例以及其他用于表示图形的对象。
到这里可能有些童鞋还不明白什么是图窗对象、坐标区对象和图形线条对象,那么我们通过代码的形式来理解这些概念。
-
图窗
在**matlab**命令行输入以下代码![在这里插入图片描述](https://img-blog.csdnimg.cn/2020072615033077.png)
则会出现下图:
可以看见这是个什么都没有的空白图窗,那么这就是图窗。
- 坐标区对象
注意:坐标区是表示 x、y 和 z 坐标区标度、刻度线、刻度标签、坐标区标签等对象的单个对象。
我们在上面的基础上接着输入以下代码
则会出现以下画面。
通过一个指令就可以获得坐标轴区对象
线条对象
接着上面的,敲入以下代码,则可以得到线条对象
修改图形对象
以上只是让我们明白图形对象的整体层次结构,其实包含很多的东西,但是通过上面的理解,对于我们日后修改和创作出不一样的图形更加有帮助。
那么接下来我们开始实战。
图形对象
当 MATLAB 创建一个绘图时,它会创建一系列的图形对象。图形对象的例子有图窗、坐标区、线条、填充和文本。下图有三个图形对象 – 一个坐标区、一条线条和一个文本对象。使用可选输出参数存储所创建的图形对象。
x = -pi:pi/20:pi;
y = sin(x);
f = figure; # 图窗
p = plot(x,y); # 一条线条对象
txt1 = text(0.2,0,'sin(x)'); % 文本对象
在命令行中输入以上代码,则会出现下图
所有图形对象均有您可以查看和修改的属性。这些属性具有默认值。下面所示的线条对象 p 显示了最常用的线条属性,如 Color、LineStyle 和 LineWidth。
这会添加另外一个文本对象
获取图形对象属性
若要访问图形对象的个别属性,请使用圆点表示法语法 object.PropertyName。例如,返回线条对象的 LineWidth 属性。
通过设置线条的 Color 属性将其颜色更改为红色。
此时线条的颜色发生的变化
父级和子级
整个概念类似于Java中的继承关系,父类与子类
MATLAB 按一定的层次结构排列图形对象。层次结构的顶部是称为图形根的特殊对象。若要访问图形根,请使用 groot 函数。
注意:所有图形对象(除了根)均有一个父级。例如,坐标区(Axes)的父级是一个图窗(FIgure)。
许多对象也有子级。此套坐标区有三个子级 - 两个文本对象和一个线条对象。
因为坐标区有多个子级,Children 属性的值是一个图形对象数组。要访问坐标区的个别子级,请对数组建立索引。然后,您可以设置子级对象的属性。
此处获取第二个文本对象,并将其字体属性修改为粗体。
得到下图
总结
对于前面学习的内容,其实最主要的思想就是对象的思想。在实际的画图过程中,我们很多时候需要修改很多内容,然而对于修改的内容如果我们知道其是某个图形对象的属性,那么就只需要获取对象的属性,并将其修改便可。
希望以上内容对大家有所帮助!!