# annotation
创建注释
函数库: TyPlot
# 语法
annotation(linetype,x,y)
annotation(linetype)
annotation(shapetype,dim)
annotation(shapetype)
annotation(___,Key=Value)
an = annotation(___)
# 说明
annotation(linetype,x,y) 创建一个在当前图窗中的两个点之间延伸的线条或箭头注释。将 lineType 指定为 "line"、"arrow"、"doublearrow" 或 "textarrow"。将 x 和 y 分别指定为 [x_beginx_end] 和 [y_beginy_end] 形式的二元素向量。示例
annotation(linetype) 在点 (0.3,0.3) 和 (0.4,0.4) 之间的默认位置创建注释。
annotation(shapetype,dim) 在当前图窗中创建具有特定大小和位置的矩形、椭圆或文本框注释。将 shapeType 指定为 "rectangle"、"ellipse" 或 "textbox"。指定 dim 作为 [xywh] 形式的四元素向量。x 和 y 元素确定位置,w 和 h 元素确定大小。示例
annotation(shapetype) 会在默认位置创建注释,以使左下角位于 (0.3,0.3) 且宽度和高度均为 0.1。
annotation(___,Key=Value) 用于创建注释并将属性指定为名称-值对组参数。不同类型的注释支持不同属性。您可以使用上述语法中的任意输入参数组合指定属性。示例
an = annotation(___) 返回注释对象。返回的对象的类型取决于第一个输入参数。创建对象之后,可使用 an 修改其属性。可以使用上述任意语法指定输出参数。示例
# 示例
创建文本箭头注释
创建一个简单线图并向图窗添加文本箭头。用归一化的图窗坐标指定文本箭头位置,起点为 (0.3,0.6),终点为 (0.5,0.5)。通过设置 string 属性指定文本说明。
using TyPlot
plot(1:10)
x = [0.3 0.5];
y = [0.6 0.5];
annotation("textarrow", x, y, string ="y = x ")

创建文本框注释
创建一个简单线图并向图窗添加文本框注释。通过设置 string 属性指定文本说明。通过将 fitboxtotext 属性设置为 "on",强制使文本框紧贴文本。
using TyPlot
figure()
plot(1:10)
dim = [.2 .5 .3 .3];
str = "Straight Line Plot from 1 to 10";
annotation("textbox", dim, string=str, fitboxtotext="on");
创建文本框注释而不设置 fitboxtotext 属性。文本框使用指定的宽度和高度,并根据需要进行文本换行。
figure()
plot(1:10)
dim = [.2 .5 .3 .3];
str = "Straight Line Plot from 1 to 10";
annotation("textbox", dim, string=str);

创建包含多行文本的文本框注释
通过将 string 属性设置为字符串矩阵,创建包含多行文本的文本框注释。字符串矩阵的每个元素显示在单独的行上。通过将 fitboxtotext 属性设置为 "on",强制使文本框紧贴文本。
using TyPlot
figure()
plot(1:10)
dim = [.2 .5 .3 .3];
str = ["Straight Line Plot" "from 1 to 10"];
annotation("textbox", dim, string=str, fitboxtotext="on");

创建矩形注释
创建一个针状图并向图窗添加矩形注释。通过指定 Color 属性更改矩形轮廓的颜色。
using TyPlot
figure()
data = [2 4 6 7 8 7 5 2];
stem(1:length(data), data)
xlim([1,8])
ylim([0,8])
dim = [.3 .68 .2 .2];
annotation("rectangle", dim, edgecolor="red");
向图窗添加另一个矩形注释。通过设置 facecolor 属性指定填充颜色。通过将 facealpha 属性设置为 0(完全透明)到 1(完全不透明)之间的值添加透明度。
dim2 = [.74 .56 .1 .1];
annotation("rectangle", dim2, facecolor="blue", facealpha=0.2);

创建椭圆注释
创建一个简单线图并向图窗添加椭圆注释。将 dim 指定为包围椭圆的最小矩形的尺寸和位置。
using TyPlot
figure()
x = LinRange(-4, 4, 50);
y = x .^ 3 - 12 * x;
plot(x, y)
dim = [0.2 0.74 0.25 0.15];
annotation("ellipse", dim);
xlim([-4, 4])
ylim([-20, 20])
使用相同的尺寸绘制一个红色矩形,以显示椭圆如何填充矩形区域。
annotation("rectangle", dim; edgecolor="red")

组合使用两种类型的注释
创建一个简单的线图。然后,通过组合使用线条和箭头注释向图形添加一个弯曲箭头。
using TyPlot
figure()
plot(1:10)
xl = [.3 .3];
yl = [.3 .4];
annotation("line", xl, yl);
xa = [.3 .4];
ya = [.4 .4];
annotation("arrow", xa, ya);

创建后修改注释
向图窗添加一个文本箭头,并返回注释文本箭头对象 a。
using TyPlot
figure()
plot(1:10)
x = [0.3,0.5];
y = [0.6,0.5];
a = annotation("textarrow",x,y,string="y = x ");
使用 a 修改注释文本箭头的属性。例如,将颜色更改为红色,将字体大小更改为 14 磅。
a.set_color("red");
a.set_fontsize(14);
plt_update()

# 输入参数
linetype - 线条注释的类型"line" | "arrow" | "doublearrow" | "textarrow"
线条注释的类型,指定为下列值之一。
| 值 | 对象类型 | 示例 |
|---|---|---|
| "line" | 注释线条 | annotation("line",[.1 .2],[.1 .2]) |
| "arrow" | 注释箭头 | annotation("arrow",[.1 .2],[.1 .2]) |
| "doublearrow" | 注释双箭头 | annotation("doublearrow",[.1 .2],[.1 .2]) |
| "textarrow" | 注释文本箭头。要在文本箭头的末尾添加文本,请使用 string 属性。 | annotation("textarrow",[.1 .2],[.1 .2],string = "my text") |
shapetype - 形状注释的类型"rectangle" | "ellipse" | "textbox"
形状注释的类型,指定为下列值之一。
| 值 | 对象类型 | 示例 |
|---|---|---|
| "rectangle" | 注释矩形 | annotation("rectangle",[.2 .3 .4 .5]) |
| "ellipse" | 注释椭圆 | annotation("ellipse",[.2 .3 .4 .5]) |
| "textbox" | 注释文本框。要指定文本,请设置 string 属性。要自动调整文本框尺寸,使其紧贴在文本周围,请将 FitBoxToText 属性设置为 "on"。 | annotation("textbox",[.2 .3 .4 .5],string = "my text", fitboxtotext = "on") |
x - 起点和终点的 x 坐标[x_begin x_end] 形式的二元素向量
起点和终点的 x 坐标,指定为 [x_begin x_end] 形式的二元素向量。x 和 y 输入参数共同确定线条、箭头、双箭头或文本箭头注释的端点。注释从点 (x_begin, y_begin) 延伸到点 (x_end, y_end)。
默认情况下,使用归一化的图窗单位。图窗的左下角映射到 (0,0),右上角映射到 (1,1)。要更改单位,请使用 Units 属性。
示例: x = [.3 .5]
y - 起点和终点的 y 坐标[x_begin x_end] 形式的二元素向量
起点和终点的 y 坐标,指定为 [y_begin y_end] 形式的二元素向量。x 和 y 输入参数共同确定线条、箭头、双箭头或文本箭头注释的端点。注释从点 (x_begin, y_begin) 延伸到点 (x_end, y_end)。
默认情况下,使用归一化的图窗单位。图窗的左下角映射到 (0,0),右上角映射到 (1,1)。要更改单位,请使用 Units 属性。
示例: y = [.3 .5]
dim - 尺寸和位置[x y w h] 形式的四元素向量
尺寸和位置,指定为 [x y w h] 形式的四元素向量。前两个元素指定文本框、矩形或椭圆的左下角相对于图窗左下角的坐标。后两个元素分别指定注释的宽度和高度。
如果您创建椭圆,则 dim 是包围该椭圆的最小矩形的尺寸和位置。
默认情况下,使用归一化的图窗单位。图窗的左下角映射到 (0,0),右上角映射到 (1,1)。
示例: dim = [.3 .4 .5 .6]
# 名称-值对组参数
指定可选的、以逗号分隔的 Key=Value 对组参数。Key 为参数名称,Value 为对应的值。您可采用任意顺序指定多个名称-值对组参数,如 Key1=Value1,...,KeyN=ValueN 所示。
示例: annotation("rectangle",[.5 .5 .1 .1],edgecolor = "r") 创建具有红色轮廓的矩形注释。
每种类型的注释对象支持一组不同的属性。有关每种类型的属性和说明的完整列表,请参阅相关联的属性页。
# 输出参数
an - 注释对象标量
注释对象,以标量形式返回。返回的注释对象的类型取决于第一个输入参数。
| 第一个输入参数 | 返回的对象类型 | 属性页 |
|---|---|---|
| "line" | 线条 | line 属性 |
| "arrow" | 箭头 | arrow 属性 |
| "doublearrow" | 双箭头 | doublearrow 属性 |
| "textarrow" | 文本箭头 | textarrow 属性 |
| "textbox" | 文本框 | textbox 属性 |
| "rectangle" | 矩形 | rectangle 属性 |
| "ellipse" | 椭圆 | ellipse 属性 |
# 另请参阅
# 函数
# 属性
line 属性 | arrow 属性 | doublearrow 属性 | textarrow 属性 | textbox 属性 | rectangle 属性 | ellipse 属性