MATLAB(5)绘图

目录

  • 线图
    • plot
      • 线型、线段颜色及标记
      • 线宽、标记点大小及颜色
      • 绘图位置
        • figure函数
        • tiledlayout函数
      • 标题
    • plot3
  • 二维动图
    • 创建动态线条对象:animatedline
    • 向动态线条对象添加数据:addpoints
    • 更新图窗:drawnow

线型 说明
实线(默认)
虚线
: 点线
-. 点划线
标记 说明
o 圆圈
+
*
.
x
s 方形
d 菱形
^ 上三角
v 下三角
> 右三角
左三角
p 五角形
h 六角形
颜色 说明
y 黄色
m 品红色
c 青蓝色
r 红色
g 绿色
b 蓝色
w 白色
k 黑色

线宽、标记点大小及颜色

       线宽、标记点大小及颜色的设置是通过向plot添加对应的Name(属性),Value (值)对组指定,如下所示。

       对应产生的线图如下图所示。

MATLAB(5)绘图
       除了上述的Name外,还有其它属性,可参考Line属性。

       除了在绘制时设置属性外,绘制完也可以修改线条的相应属性,如以下代码所示,在绘制时获取线条对象,并修改颜色为红色。

一般设置属性值的方式不止一种,如设置颜色为红色,除了使用颜色名称’red‘,还可以使用短名称’r‘,RGB三元组[1 0 0],或者十六进制颜色代码 ‘#FF0000’,具体方式可参考Line属性。

绘图位置

figure函数

  1. 生成默认新图窗,并设置为当前窗口:。
  2. 根据对应的Name(属性),Value (值)对组指定图窗属性:,Figure属性。

同样也可以通过返回图窗对象,并通过进行属性设置。

  1. 将图窗对象f指定为当前图窗:。
  2. 将Number属性为n的图窗指定为当前图窗(若没有则新建后将其Number属性设为n):。

tiledlayout函数

tiledlayout函数在R2019b开始提供!更早期的可使用subplot函数。

       tiledlayout函数可用于设置分块图布局,即使多个图存在于同一个窗口内,通过创建m行n列大小的分块图,通过nexttile函数选择其中一个图窗进行绘图。

  1. 选择下一个图窗作为当前图窗进行绘图:,如果刚通过tiledlayout函数创建则选择第一个。
  2. 选择第n个图窗作为当前图窗进行绘图:。
  3. 将第n个图窗及周围的line*col-1个图窗合并,并设置为当前图窗:。
  4. 通过nexttile可返回相应的图窗对象,此后可以使用进行设置,相应属性和值可参考属性。其实通过tiledlayout函数返回的对象也可以,但设置的是所有的图窗。

标题

  1. 直接设置标题:,将当前图窗的标题名称设置为字符串。
  2. 为分块图各个图窗设置标题:,x为通过nexttile返回的图窗对象。()

plot3

       plot3函数用于绘制三维线图,与plot函数的使用一样,当然每个图对应坐标参数为3。

二维动图

创建动态线条对象:animatedline

  1. 创建没有数据的动态线条,为了方便添加数据,需要返回一个对象:。
  2. 创建已包含相应数据的动态线条:,x和y建议是同样大小的一维矩阵。(animatedline 在这里相当于集成了plot和plot3函数,坐标参数可以直接输入3个)
  3. 创建线条并设置相应线条属性:或。

向动态线条对象添加数据:addpoints

       addpoints用于向动态线条对象添加数据,格式为:,当然,也可以输入3个参数以绘制三维线条。

注意:似乎只有在创建时或通过等才能进行属性设置,而不能边加点边设置属性,换言之,是不行的,应该是因为addpoints函数无该参数。

更新图窗:drawnow

       事实上,通过addpoints添加数据后,在图窗即可绘制相应图像,而无法实现动图的效果,这是因为通过addpoints传入大量数据后,执行时线图会被一次性绘制,哪怕在循环中通过addpoints一次性加一个点,也没法,因为绘制速度太快,因此这里需要drawnow来更新图窗(副作用,也是实现动图的方法:降低显示速度(我猜的)),示例如下代码所示:

可以尝试去除倒数第2行的drawnow,对比效果。

声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2022年6月28日
下一篇 2022年6月28日

相关推荐