annotation() 函数

(1) annotation(annotation_type)
以指定的对象类型,使用默认属性值建立注释对象。

(2) annotation(‘line’,x,y)
建立从 x 到 y 的线注释对象。

(3) annotation(‘arrow’,x,y)
建立从 x 到 y 的箭头注释对象。

(4) annotation(‘doublearrow’,x,y)
建立从 x 到 y 的双箭头注释对象。

(5) annotation(‘textarrow’,x,y)
建立从 x 到 y 的带文本框的箭头注释对象。

(6) annotation(‘textbox’,[x y w h])
建立文本框注释对象,左下角坐标(x,y),宽w,高h.

(7) annotation(‘ellipse’,[x y w h])
建立椭圆形注释对象。

(8) annotation(‘rectangle’,[x y w h])
建立矩形注释对象。

(9) annotation(figure_handle,…)
在句柄值为figure_handle的图形窗口建立注释对象。

annotation(…,‘PropertyName’,PropertyValue,…)
建立并设置注释对象的属性。

(11) anno_obj_handle = annotation(…)
返回注释对象的句柄值。

(12) annotation(‘arrow’,x,y) %
建立从 x 到 y 的箭头注释对象。

annotation('arrow',[0.5 0.9],[0.0 0.5]);

【Matlab】图添加箭头指示_句柄
注意:annotation对象的父对象是figure对象,上面提到的坐标x,y是标准化的坐标,即整个图形窗口(figure对象)左下角为(0, 0),右上角为(1, 1)。宽度w和高度h也都是标准化的,其取值在 [0, 1] 之间。

quiver()函数

(1) quiver(x,y,u,v)
该函数使用箭头来直观的显示矢量场。
该调用格式表示通过在(x, y)指定的位置绘制小箭头来表示以该点为起点的向量(u,v)。x、y、u、v的行数、列数必须对应相等。即x、y、u、v必须是同型矩阵。
需要注意的是,如果x、y不是矩阵,MATLAB会调用 meshgrid 函数将其扩展。然后再调用 quiver 函数。在这种情况下,x中元素的个数必须等于u、v的列数,y中元素个数必须等于u、v的行数(否则使用meshgrid扩展后无法满足x、y、u、v是同型矩阵,具体参见meshgrid函数)。

(2) quiver(u,v)
在x-y面上绘制向量(u,v),由于没有指定向量的起点,所以,matlab将在x-y面上均匀的取若干个点作为起点。

(3) quiver(…,scale)
自动缩放箭头大小以使它适合网格的大小,然后根据scale因子拉伸这些箭头。例如,scale = 2则使箭头的相对长度增大为原来的2倍,scale = 0.5则使箭头的长度缩短一半。scale = 0则关闭箭头大小的自动缩放。也可以在箭头绘制完成后, 点击图形窗口工具栏中的箭头按钮打开Plot Edit工具, 使用鼠标选择绘图窗口中的箭头对象, 右键快捷菜单打开对象的属性编辑器, 进而调整箭头长度、线型等。

(4) quiver(…,LineSpec)
其中LineSpec参数指定了线型、标志样式、颜色。quiver函数会把指定标志绘制在向量的起点。

(5) quiver(…,LineSpec,‘filled’)
使用LineSpec指定的标志进行填充。

(6) quiver(axes_handle,…)
h = quiver(…)

Ref: matlab图加上箭头和标注实例