matlab中set设置图形属性

时间:2021-09-06 19:06:54

来源:https://ww2.mathworks.cn/help/matlab/ref/set.html?searchHighlight=set&s_tid=doc_srchtitle

set

设置图形对象属性

语法

set(H,Name,Value)
set(H,NameArray,ValueArray)
set(H,S)
s = set(H)
values = set(H,Name)

 

说明

注意

不要对 Java 对象使用 set 函数,因为这会导致内存泄漏。有关详细信息,请参阅Access Public and Private Data

set(H,Name,Value)H 标识的对象指定其 Name 属性的值。使用时须用单引号将属性名引起来,例如,set(H,'Color','red')。如果 H 是对象的向量,则 set 会为所有对象设置属性。如果 H 为空(即 []),set 不执行任何操作,但不返回错误或警告。

set(H,NameArray,ValueArray) 使用元胞数组 NameArrayValueArray 指定多个属性值。要为 m 个图形对象中的每个图形对象设置 n 个属性值,请将 ValueArray 指定为 m×n 的元胞数组,其中 m = length(H),而 n 等于 NameArray 中包含的属性名的数量。

set(H,S) 使用 S 指定多个属性值,其中 S 是一个结构体,其字段名称是对象属性名称,字段值是对应的属性值。MATLAB 会忽略空结构体。

s = set(H) 返回 H 标识的对象的、可由用户设置的属性及其可能的值。s 是一个字段名称是对象属性名称且字段值是对应属性的可能值的结构体。如果您不指定输出参数,MATLAB 软件会在屏幕上显示该信息。H 必须为单个对象。

values = set(H,Name) 返回指定属性的可能值。如果可能的值为字符向量,则 set 会在元胞数组 values 的元胞中返回每个值。对于其他属性而言,set 会返回一个指示 Name 没有一组固定属性值的语句。如果您不指定输出参数,MATLAB 会在屏幕上显示该信息。H 必须为单个对象。

注意

有关您可以设置的属性的更多信息,请参阅每个对象的属性页,例如 Figure 属性Axes 属性Line 属性Text 属性 等。

示例

更改特定线条的颜色

绘制一个线条并以 p 的形式返回图形线条对象。将行的 Color 属性设置为 'red'

p = plot(1:10);
set(p,'Color','red')

更改多个线条的颜色

使用随机数据创建一个包含四个线条的图形,并将这四个线条对象返回至 P。将所有线条的 Color 属性设置为 'red'

P = plot(rand(4));
set(P,'Color','red')

为多个线条的线型设置为不同的值

将四个图形线条对象的 LineStyle 属性值分别设为不同的值。转置元胞数组值,使其拥有合适的形状。

P = plot(rand(4));
NameArray = {'LineStyle'};
ValueArray = {'-','--',':','-.'}';
set(P,NameArray,ValueArray)

为多个对象的多个属性设置不同值

将三个不同针状序列对象的 MarkerTag 属性设置为不同值。值元胞数组的每一行对应于 h 中的一个对象且包含两个值,一个对应于 Marker 属性,一个对应于 Tag 属性。

x = 0:30;
y = [1.5*cos(x); 4*exp(-.1*x).*cos(x); exp(.05*x).*cos(x)]';
S = stem(x,y);
NameArray = {'Marker','Tag'};
ValueArray = {'o','Decaying Exponential';...
'square','Growing Exponential';...
'*','Steady State'};
set(S,NameArray,ValueArray)

提示

可以在一次 set 调用中使用属性名称/属性值对组、结构体数组和元胞数组的任意组合。

设置属性单位

请注意,如果在一次函数调用中同时设置 FontSizeFontUnits 属性,必须先设置 FontUnits 属性以使 MATLAB 软件能够正确地解释指定的 FontSize。这也适用于图窗和坐标区的单位 - 始终先设置 Units 属性,然后再设置希望以这些单位解释其值的属性。例如,

f = figure('Units','characters','Position',[30 30 120 35]);

另请参阅

findobj | gca | gcbo | gcf | gco | get