В этом примере показано, как создать, отобразитесь и измените графические объекты в 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: [-3.1416 -2.9845 -2.8274 -2.6704 -2.5133 -2.3562 ... ] YData: [-1.2246e-16 -0.1564 -0.3090 -0.4540 -0.5878 ... ] 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);
t.FontWeight = '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: [0 0.0159 0.0317 0.0476 0.0635 0.0794 0.0952 ... ] 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'