主要内容

修改图形对象

这个例子展示了如何在MATLAB®中创建,显示和修改图形对象。

图形对象

当MATLAB创建一个图形时,它创建一系列图形对象。图形、轴、线、补丁和文本都是图形对象的例子。下图有三个图形对象——轴、线和文本对象。使用可选的输出参数来存储创建的图形对象。

x = -π:π/ 20:π;y = sin (x);f =图;p =情节(x, y);txt1 =文本(0.2,0,“sin (x)”);

图中包含一个轴对象。axis对象包含两个类型为line, text的对象。

所有图形对象都具有可以查看和修改的属性。这些属性具有默认值。直线对象的显示,p,显示最常用的行属性,例如颜色线型,线宽

p
p = Line with properties: Color: [0 0.4470 0.7410] Line style: '-' Line width: 0.5000 Marker: 'none' MarkerSize: 6 MarkerFaceColor: 'none' XData:[-3.1416 -2.9845 -2.8274 -2.6704 -2.5133 -2.3562…[-1.2246e-16 -0.1564 -0.3090 -0.4540 -0.5878…][1x0 double]显示所有属性

如果创建对象的命令中缺少分号,MATLAB也会显示相同的结果。

Txt2 = text(x(end), y(end)),“π”

图中包含一个轴对象。axis对象包含3个类型为line, text的对象。

txt2 = Text (pi) with properties: String: 'pi' FontSize: 10 FontWeight: 'normal' FontName: 'Helvetica' Color: [0 0 0] HorizontalAlignment: 'left' Position: [3.1416 1.2246e-16 0] Units: 'data'显示所有属性

获取图形对象属性

要访问图形对象的单个属性,请使用点符号语法对象。PropertyName.例如,返回线宽属性为线对象。

pcol = p.LineWidth
pcol = 0.5000

将线条颜色设置为红色颜色财产。

p.Color =“红色”

图中包含一个轴对象。axis对象包含3个类型为line, text的对象。

父母和孩子

MATLAB将图形对象排列成层次结构。层次结构的顶部是一个特殊的对象,称为图形根.要访问图形根目录,请使用大的函数。

大的
ans = Graphics Root with properties: CurrentFigure: [1x1 Figure] ScreenPixelsPerInch: 100 ScreenSize: [1 1 1280 1024] MonitorPositions: [1 1 1280 1024] Units: 'pixels'显示所有属性

所有图形对象(根对象除外)都有父对象。例如,坐标轴的父元素是一个图形。

甘氨胆酸ax =;斧子。父
ans = Figure (1) with properties: Number: 1 Name: " Color: [1 1 1] Position: [348 480 583 437] Units: 'pixels'显示所有属性

许多物体也有孩子。这个轴有三个子对象——两个文本对象和线对象。

斧子。孩子们
ans = 3x1图形数组:Text (pi) Text (sin(x)) Line

由于坐标轴有多个子节点,因此孩子们属性是一个图形对象数组。要访问坐标轴的单个子元素,请在数组中建立索引。然后可以设置子对象的属性。

t = ax.Children (2);t.FontWeight =“大胆”

图中包含一个轴对象。axis对象包含3个类型为line, text的对象。

预分配图形对象数组

在MATLAB中,在使用数组之前预先分配数组是一个最佳实践。使用gobject命令来预分配一个图形对象数组。然后可以向数组添加图形对象。

objarray = gobject(1、5);objarray = f (1);objarray (2) = ax;objarray (3) = p;objarray (4) = txt1;objarray (5) = txt2;objarray
objarray = 1x5图形数组:图形轴线文本文本

获取所有对象属性

MATLAB中的图形对象有许多属性。要查看对象的所有属性,请使用得到命令。

get (f)
Alphamap:[0 0.0159 0.0317 0.0476 0.0635 0.0794 0.0952…正在删除:off BusyAction: 'queue' ButtonDownFcn: " Children: [1x1 Axes] clip: on CloseRequestFcn: 'closereq' Color: [1 1 1] Colormap: [256x3 double] ContextMenu: [0x0 GraphicsPlaceholder] CreateFcn: " CurrentCharacter: " CurrentObject: [0x0 GraphicsPlaceholder] CurrentPoint: [0 0] DeleteFcn: " DockControls:文件名:“GraphicsSmoothing: HandleVisibility:“图标:“InnerPosition: [348 480 583 437] IntegerHandle:可中断:InvertHardcopy: KeyPressFcn:“KeyReleaseFcn:”菜单条:‘没有’的名字:“NextPlot:‘添加’号:1 NumberTitle: OuterPosition: [348 480 583 437] PaperOrientation:“肖像”PaperPosition:[1.3350 3.3150 5.8300 4.3700] PaperPositionMode: 'auto' PaperSize: [8.5000 11] PaperType: 'usletter' PaperUnits: 'inches' Parent: [1x1 Root] Pointer: 'arrow' PointerShapeCData: [16x16 double] PointerShapeHotSpot: [1 1] Position: [348 480 583 437] Renderer: 'opengl' RendererMode: 'auto' Resize: on Scrollable: off SelectionType:'normal' SizeChangedFcn: " Tag: " ToolBar: 'none'类型:'figure'单位:'pixels' UserData: [] Visible: off WindowButtonDownFcn: " WindowButtonMotionFcn: " WindowButtonUpFcn: " WindowKeyPressFcn: " WindowKeyReleaseFcn: " WindowScrollWheelFcn: " WindowState: 'normal' WindowStyle: 'normal' XDisplay: ':100'