В этом примере показано, как создать, отобразитесь и измените графические объекты в MATLAB®.
Когда MATLAB создает график, он создает серию графических объектов. Фигуры, оси, линии, закрашенные фигуры и текст являются примерами графических объектов. У фигуры ниже есть три графических объекта - оси, линия и текстовый объект. Используйте дополнительный выходной аргумент, чтобы сохранить графический объект, который создается.
x = -pi:pi/20:pi;
y = sin(x);
f = figure;
p = plot(x,y);
txt1 = text(0.2,0,'sin(x)');
Все графические объекты имеют свойства, которые можно просмотреть и изменить. Эти свойства имеют значения по умолчанию. Отображение объекта линии, p, показывает обычно используемые свойства линии, такие как Color, LineStyle, и LineWidth.
p
p =
Line with properties:
Color: [0 0.4470 0.7410]
LineStyle: '-'
LineWidth: 0.5000
Marker: 'none'
MarkerSize: 6
MarkerFaceColor: 'none'
XData: [1x41 double]
YData: [1x41 double]
ZData: [1x0 double]
Show all properties
MATLAB показывает то же отображение, если точка с запятой отсутствует в команде, которая создает объект.
txt2 = text(x(end), y(end), 'pi')
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'
Show all properties
Чтобы получить доступ к отдельным свойствам графического объекта, используйте синтаксис записи через точку object.PropertyName. Например, возвратите LineWidth свойство для объекта линии.
pcol = p.LineWidth
pcol = 0.5000
Измените цвет линии в красный путем установки его Color свойство.
p.Color = 'red';
MATLAB располагает графические объекты в иерархии. Верхняя часть иерархии является специальным объектом, названным графическим корнем. Чтобы получить доступ к графическому корню, используйте groot функция.
groot
ans =
Graphics Root with properties:
CurrentFigure: [1x1 Figure]
ScreenPixelsPerInch: 75
ScreenSize: [1 1 1280 1024]
MonitorPositions: [1 1 1280 1024]
Units: 'pixels'
Show all properties
Все графические объекты (кроме корня) имеют родительский элемент. Например, родительский элемент оси является фигурой.
ax = gca; ax.Parent
ans =
Figure (1) with properties:
Number: 1
Name: ''
Color: [1 1 1]
Position: [360 502 560 420]
Units: 'pixels'
Show all properties
Много объектов также имеют дочерние элементы. Это исключает, имеет три дочерних элемента - эти два текстовых объекта и объект линии.
ax.Children
ans = 3x1 graphics array: Text (pi) Text (sin(x)) Line
Начиная с осей имеет несколько дочерних элементов, значение Children свойство является массивом графических объектов. Чтобы получить доступ к отдельному дочернему элементу осей, индексируйте в массив. Можно затем установить свойства дочернего объекта.
t = ax.Children(2); % get the 'sin(x)' text object t.FontWeight = 'bold'; % set the font to bold

Это - лучшая практика в MATLAB, чтобы предварительно выделить массив перед использованием его. Используйте gobjects команда, чтобы предварительно выделить массив графических объектов. Можно затем добавить графические объекты в массив.
objarray = gobjects(1,5); objarray(1) = f; objarray(2) = ax; objarray(3) = p; objarray(4) = txt1; objarray(5) = txt2; objarray
objarray =
1x5 graphics array:
Figure Axes Line Text Text
Графические объекты в MATLAB имеют много свойств. Чтобы видеть все свойства объекта, используйте get команда.
get(f)
Alphamap: [1x64 double]
BeingDeleted: off
BusyAction: 'queue'
ButtonDownFcn: ''
Children: [1x1 Axes]
Clipping: on
CloseRequestFcn: 'closereq'
Color: [1 1 1]
Colormap: [256x3 double]
ContextMenu: [0x0 GraphicsPlaceholder]
CreateFcn: ''
CurrentAxes: [1x1 Axes]
CurrentCharacter: ''
CurrentObject: [0x0 GraphicsPlaceholder]
CurrentPoint: [0 0]
DeleteFcn: ''
DockControls: on
FileName: ''
GraphicsSmoothing: on
HandleVisibility: 'on'
Icon: ''
InnerPosition: [360 502 560 420]
IntegerHandle: on
Interruptible: on
InvertHardcopy: on
KeyPressFcn: ''
KeyReleaseFcn: ''
MenuBar: 'none'
Name: ''
NextPlot: 'add'
Number: 1
NumberTitle: on
OuterPosition: [360 502 560 420]
PaperOrientation: 'portrait'
PaperPosition: [0.5167 2.7000 7.4667 5.6000]
PaperPositionMode: 'auto'
PaperSize: [8.5000 11]
PaperType: 'usletter'
PaperUnits: 'inches'
Parent: [1x1 Root]
Pointer: 'arrow'
PointerShapeCData: [16x16 double]
PointerShapeHotSpot: [1 1]
Position: [360 502 560 420]
Renderer: 'opengl'
RendererMode: 'auto'
Resize: on
Scrollable: off
SelectionType: 'normal'
SizeChangedFcn: ''
Tag: ''
ToolBar: 'none'
Type: 'figure'
Units: 'pixels'
UserData: []
Visible: off
WindowButtonDownFcn: ''
WindowButtonMotionFcn: ''
WindowButtonUpFcn: ''
WindowKeyPressFcn: ''
WindowKeyReleaseFcn: ''
WindowScrollWheelFcn: ''
WindowState: 'normal'
WindowStyle: 'normal'
XDisplay: ':0'