带标签的水平箭头指向垂直线

问题描述

我正在尝试绘制一些注释以配合我的阶跃函数图。我目前有这些图表,我一直在试图弄清楚如何绘制指向垂直线的水平箭头。我还需要指向水平线的带标签的垂直线。

我附上了一张显示(红色)我的意思的图片。我已经尝试了 annotation() 函数,但是将箭头放在我想要的位置确实很痛苦。如果有人不介意解释如何使用该功能,或我试图实现的替代方法,那就太棒了!

Matlab Plot with arrows I would like to achieve.

编辑:有没有办法编辑箭袋箭头的大小?

enter image description here

解决方法

在二维子图中使用 Quiver

不太确定这是否更好或更简单,但我使用 quiver() 函数绘制如下所示的线条。在这种情况下,quiver() 函数接受一些输入。在下面的完整脚本中,我使用了两倍的 quiver() 调用来绘制重叠箭头以创建双头箭头。

Quiver Arrow Annotations


函数调用:

quiver(Start_Point(1),Start_Point(2),X_Displacement,Y_Displacement,0);

Start_Point → 等于 [x y] (x 坐标 y 坐标)
Start_Point(1) → 箭头起点的x 坐标
Start_Point(2) → 箭头起点的y 坐标
X_Displacement → 距数组起点的水平距离
Y_Displacement → 距数组开头的垂直距离


设置箭头的最大尺寸:

可以使用 'MaxHeadSize' 属性设置箭头的最大尺寸。

clf;
Start_Point(1) = 0;
Start_Point(2) = 0;
X_Displacement = 0; Y_Displacement = 10;
Magnitude = sqrt(X_Displacement.^2 + Y_Displacement.^2);

quiver(Start_Point(1),'Color','r','MaxHeadSize',1/Magnitude);
hold on 

Start_Point(1) = 0;
Start_Point(2) = 0;
X_Displacement = 100; Y_Displacement = 0;
Magnitude = sqrt(X_Displacement.^2 + Y_Displacement.^2);
quiver(Start_Point(1),1/Magnitude);