# figure 属性


控制图窗窗口的外观和行为

图窗是图或用户界面组件的容器。图窗属性控制特定图窗实例的外观和行为。要修改图窗的各个方面,请更改属性值。

您可以使用 plt_getplt_set 函数查询和设置属性。

using TyPlot

f = figure();

s = plt_get(f, "backgroundcolor")

plt_set(f, "backgroundcolor", "red");

# 窗口外观

backgroundcolor - 背景色
[0.94, 0.94, 0.94, 1] (默认) | RGB 三元组 | RGBA 四元组 | 十六进制颜色代码 | "r" | "g" | "b" | ...

背景色,指定为 RGB 三元组、RGBA 四元组、十六进制颜色代码、颜色名称或短名称。

对于自定义颜色,请指定 RGB 三元组或十六进制颜色代码。

  • RGB 三元组是包含三个元素的行向量,其元素分别指定颜色中红、绿、蓝分量的强度。强度值必须位于 [0,1] 范围内,例如 [0.4, 0.6, 0.7];
  • RGBA 四元组是包含四个元素的行向量,其元素分别指定颜色中红、绿、蓝分量的强度以及透明度alpha的值。强度值必须位于 [0,1] 范围内,例如 [0.4, 0.6, 0.7, 1];
  • 十六进制颜色代码是字符向量或字符串标量,以井号 (#) 开头,后跟三个或六个十六进制数字,范围可以是 0 到 F。 这些值不区分大小写。因此,颜色代码 "#FF8800" 与 "#ff8800"、"#F80" 与 "#f80" 是等效的。
颜色名称 短名称 RGB 三元组 十六进制颜色代码 外观
"red" "r" [1, 0, 0] "#FF0000"
"green" 不适用 [0, 0.5019607843137255, 0] "#008000"
不适用 "g" [0, 0.5, 0] "#007F00"
不适用 不适用 [0, 1, 0] "#00FF00"
"blue" "b" [0, 0, 1] "#0000FF"
"cyan" 不适用 [0, 1, 1] "#00FFFF"
不适用 "c" [0, 0.75, 0.75] "#00BFBF"
"magenta" 不适用 [1, 0, 1] "#FF00FF"
不适用 "m" [0.75, 0, 0.75] "#BF00BF"
"yellow" 不适用 [1, 1, 0] "#FFFF00"
不适用 "y" [0.75, 0.75, 0] "#BFBF00"
"black" "k" [0, 0, 0] "#000000"
"white" "w" [1, 1, 1] "#FFFFFF"
"none" 不适用 不适用 不适用 无颜色

以下是 Syslab 在许多类型的绘图中使用的默认颜色的 RGB 三元组和十六进制颜色代码。

RGB 三元组 十六进制颜色代码 外观
[0, 0.4470, 0.7410] "#0072BD"
[0.8500, 0.3250, 0.0980] "#D95319"
[0.9290, 0.6940, 0.1250] "#EDB120"
[0.4940, 0.1840, 0.5560] "#7E2F8E"
[0.4660, 0.6740, 0.1880] "#77AC30"
[0.3010, 0.7450, 0.9330] "#4DBEEE"
[0.6350, 0.0780, 0.1840] "#A2142F"
autoadjustview - 是否自动调整边距
“off”(默认)| “on” | “off”

设置是否自动调整边距,值为“on”|“off”。

datatipson - 是否开启数据提示功能
“off”(默认)| “on” | “off”

设置是否开启数据提示功能,值为“on”|“off”。

windowstate - 窗口状态
“normal”(默认)| “minimized” | “maximized” | “fullscreen”

窗口状态,指定为下列值之一:

  • "normal" - 窗口显示为正常状态:

  • "minimized" - 窗口被折叠,但您仍可以执行命令来获取或设置其属性、添加子级或在窗口中创建绘图;

  • "maximized" - 窗口填满屏幕。操作系统提供的最小化、还原和关闭按钮出现在窗口的角落。如果窗口在正常状态下显示菜单和工具栏,则在这一状态下也会显示二者;

  • "fullscreen" - 窗口填满屏幕。但是,操作系统提供的最小化、还原和关闭按钮将被隐藏。如果窗口在正常状态下显示菜单和工具栏,则在这一状态下也会显示二者。

示例: 修改窗口状态为窗口填满屏幕。

using TyPlot 
f = figure(;windowstate = "maximized")

注意

  • Windows 系统支持通过 plt_get, plt_set 函数获取或者修改 windowstate 属性;

  • Linux 系统由于桌面环境和窗口管理器差异,不支持通过 plt_get, plt_set 函数获取或修改 windowstate 属性;

  • Syslab Online 版本不支持 windowstate 属性。

# 位置

position - 可绘制区域的位置和大小
[left bottom width height]

可绘制区域的位置和大小,指定为 [left bottom width height] 形式的向量。此区域不包括图窗边框、标题栏和工具栏。

此表介绍 position 向量中的每个元素。

元素 说明
left 从主画面左边缘到窗口的内部左边缘的距离。在具有多个监视器的系统上,此值可能为负数。
bottom 从主画面下边缘到窗口的内部下边缘的距离。在具有多个监视器的系统上,此值可能为负数。
width figure 的左右内部边缘之间的距离。
height 窗口的上下内部边缘之间的距离。
units- 测量单位
"pixels" (默认) | "normalized" | "inches" | "centimeters" | "points"

测量单位,指定为下表中的值之一。

元素 说明
"pixels"(默认值) 像素。在 Windows 系统上,一个像素是 1/96 英寸。在 Linux 系统上,一个像素的大小由系统分辨率确定。
"normalized" 这些单位依据父容器进行归一化。容器的左下角映射到 (0,0),右上角映射到 (1,1)。
"inches" 英寸。
"centimeters" 厘米。
"points" 磅。1 磅等于 1/72 英寸。

Syslab 从父对象的左下角测量所有单位。

此属性会影响 position 属性。如果更改 units 属性,请考虑在完成计算后将其值还原为默认值,以免影响采用默认值的其他函数。

innerposition - 可绘制区域的位置和大小
[left bottom width height]

可绘制区域的位置和大小,指定为 [left bottom width height] 形式的向量。此区域不包括图窗边框、标题栏和工具栏。

此属性值等同于 position 属性值。

outerposition - 外部边界的位置和大小
[left bottom width height]

外部边界的位置和大小,指定为 [left bottom width height] 形式的向量。此属性定义由图窗的外部边界围起的区域(包括边框、标题栏、工具栏)。

此表介绍该向量中的每个元素。

元素 说明
left 从主画面左边缘到窗口的外部左边缘的距离。在具有多个监视器的系统上,此值可能为负数。
bottom 从主画面下边缘到窗口的外部下边缘的距离。在具有多个监视器的系统上,此值可能为负数。
width figure 的左右外部边缘之间的距离。
height figure 的上下外部边缘之间的距离。

# 打印和导出

paperposition - 打印或保存时页面上的图窗大小和位置
[left bottom width height] 形式的四元素向量

打印或保存时页面上的图窗大小和位置,指定为 [left bottom width height] 形式的四元素向量。

  • left 和 bottom 值 —— 控制从页面左下角到图窗左下角的距离。以非页面格式(例如 PNG 格式)保存图窗时,这些值将被忽略;

  • width 和 height 值 —— 控制图窗大小。如果宽度和高度值太大,则图窗可能无法达到指定的大小。

paperunits 属性确定 paperposition 值的测量单位。考虑将 paperunits 属性设置为 "normalized"。该设置使 Syslab 能够自动改变图窗大小,从而无论页面尺寸如何均以同样的相对量占据打印页面。

示例: figure(;paperposition = [0.25, 0.25, 8, 6]) 设置图窗的大小和位置以打印到 [0.25, 0.25, 8, 6]。

paperpositionmode - 指示在打印或保存时使用显示的图窗大小的指令
"auto"(默认) | "manual"

指示在打印或保存时使用显示的图窗大小的指令,指定为 "auto" 或 "manual"。

  • "auto" —— 打印或保存的图窗大小与显示的图窗大小相匹配。paperposition 属性的 width 和 height 值等于显示的图窗大小。left 和 bottom 值使图窗居中。如果显示的图窗大小发生变化,paperposition 属性将自动更新为相应的尺寸和位置值;
  • "manual" —— 打印或保存的图窗大小与显示的图窗大小可能不匹配。如果您要使用不同于所显示的大小打印或保存图窗,或者您不希望图窗居中置于打印或保存的页面上,请使用此选项。将 paperposition 属性设置为所需的大小和位置。如果显示的图窗大小发生变化,paperposition 属性不会自动更新。
paperunits - 用于 paperposition 的单位
"centimeters"(默认)| "inches" | "normalized" | "points"

用于 paperposition 的单位,指定为下列值之一:

  • "inches" —— 以英寸为单位的值;

  • "normalized" —— 归一化的单位。页面的左下角映射到 (0,0),右上角映射到 (1,1);

  • "centimeters" —— 以厘米为单位的值;

  • "points" —— 以磅为单位的值。1 磅等于 1/72 英寸。

paperorientation - 页面方向
"portrait" (默认) | "landscape"

打印图窗或将其保存为分页格式(PDF 格式)时的页面方向,指定为下列值之一:

  • "portrait" —— 以页面的最长尺寸为纵向;

  • "landscape" —— 以页面的最长尺寸为横向。

示例: 修改页面方向为横向,保存为 PDF 格式文件。

using TyPlot 
figure(;paperposition = [0.25, 0.25, 8, 6],paperorientation = "landscape")
plot(1:10)
saveas(gcf(),"1.pdf")

# 交互性

visible - 可见性状态
“on”(默认) | “on”/“off”

可见性状态,指定为 “on” 或 “off”

  • “on” —— 显示对象;
  • “off” —— 隐藏对象而不删除它。您仍然可以访问不可见 UI 组件的属性。
currentaxes - 当前图窗中的目标坐标区
Axes对象

此属性为只读。 当前图窗中的目标坐标区,指定为 Axes 对象。 在存在坐标区子级的所有图窗中,始终存在当前坐标区。当前坐标区不必是最顶层的坐标区,并且将坐标区设置为当前坐标区不会将其重新叠放在所有其他坐标区上。如果图窗不包含坐标区,则 plt_get(gcf(),"CurrentAxes") 命令返回一个空数组。 查询 CurrentAxes 属性来获取当前坐标区对象,而不强制创建不存在的坐标区。

selected - 选择状态
“off” (默认) | “on”/“off”

选择状态,指定为 “on” 或 “off”

  • “on” —— 已选择。如果您在绘图编辑模式下点击对象,则 SYSLAB 会将其 selected 属性设置为 “on”;

  • “off” —— 隐藏对象而不删除它。您仍然可以访问不可见对象的属性。

# 父级/子级

children - 子级
数组

Figure 的子级即 axes 对象,figure 没有子级对象返回[],只有一个子级对象返回子级句柄,多个子级对象返回包含子级句柄的数组。

# 标识符

name - 名称
"" (默认) | 字符向量 | 字符串标量

图窗的名称,指定为字符向量或字符串标量。

示例: figure(name = "Results") 将图窗的名称设置为 "Results"。

默认情况下,名称为 "Figure n",其中 n 是整数。如果您指定 name 属性,图窗的标题将变为 "Figure n: name"。如果您希望只显示 name 值,请将 numberTitle 设置为 "off"。

numbertitle - 使用带编号的标题
"on" (默认) | "off"

带编号的标题,指定为 "on" 或 "off"。

将此属性设置为 "on" 时,图窗的标题会包含短语 "Figure n"。

type - Figure 对象的类型
"figure"

此属性为只读。 Figure 对象的类型,以 "figure" 形式返回。使用该属性在绘制层次结构中查找指定类型的所有对象。