Modificar objetos de gráficas
Este ejemplo muestra la manera de crear, mostrar y modificar objetos de gráficas en MATLAB®.
Objetos de gráficas
Cuando MATLAB crea una gráfica, crea una serie de objetos de gráficas. Las figuras, los ejes, las líneas, los parches y el texto son ejemplos de objetos de gráficas. La siguiente figura tiene tres objetos de gráficas: unos ejes, una línea y un objeto de texto. Utilice un argumento de salida opcional para almacenar el objeto de gráficas que se crea.
x = -pi:pi/20:pi;
y = sin(x);
f = figure;
p = plot(x,y);
txt1 = text(0.2,0,'sin(x)');
Todos los objetos de gráficas tienen propiedades que puede ver y modificar. Estas propiedades tienen valores predeterminados. La pantalla del objeto de línea, p
, muestra las propiedades de línea utilizadas de manera más común, como Color
, LineStyle
y 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 -2.1991 -2.0420 -1.8850 -1.7279 -1.5708 -1.4137 -1.2566 -1.0996 -0.9425 -0.7854 -0.6283 -0.4712 -0.3142 -0.1571 0 0.1571 0.3142 0.4712 0.6283 0.7854 0.9425 1.0996 ... ] (1x41 double) YData: [-1.2246e-16 -0.1564 -0.3090 -0.4540 -0.5878 -0.7071 -0.8090 -0.8910 -0.9511 -0.9877 -1 -0.9877 -0.9511 -0.8910 -0.8090 -0.7071 -0.5878 -0.4540 -0.3090 -0.1564 0 0.1564 0.3090 0.4540 0.5878 0.7071 0.8090 0.8910 ... ] (1x41 double) Use GET to show all properties
MATLAB muestra la misma pantalla si falta el punto y coma en el comando que crea el objeto.
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' Use GET to show all properties
Obtener las propiedades de los objetos de gráficas
Para acceder a las propiedades individuales de un objeto de gráfica, utilice la sintaxis de notación de puntos object.PropertyName
. Por ejemplo, devuelva la propiedad LineWidth
para el objeto de línea.
pcol = p.LineWidth
pcol = 0.5000
Cambie el color de línea a rojo al configurar su propiedad Color
.
p.Color = 'red';
Elementos principales y secundarios
MATLAB dispone los objetos de gráficas en una jerarquía. La parte superior de la jerarquía es un objeto especial llamado la raíz de gráficas. Para acceder a la raíz de gráficas, utilice la función groot
.
groot
ans = Graphics Root with properties: CurrentFigure: [1x1 Figure] ScreenPixelsPerInch: 100 ScreenSize: [1 1 1280 1024] MonitorPositions: [1 1 1280 1024] Units: 'pixels' Use GET to show all properties
Todos los objetos de gráficas (excepto el objeto raíz) tienen un elemento principal. Por ejemplo, el elemento principal de unos ejes es una figura.
ax = gca; ax.Parent
ans = Figure (1) with properties: Number: 1 Name: '' Color: [1 1 1] Position: [348 376 583 437] Units: 'pixels' Use GET to show all properties
Muchos objetos también tienen elementos secundarios. Estos ejes tienen tres elementos secundarios: los dos objetos de texto y el objeto de línea.
ax.Children
ans = 3x1 graphics array: Text (pi) Text (sin(x)) Line
Ya que los ejes tienen varios elementos secundarios, el valor de la propiedad Children
es un arreglo de los objetos de gráficas. Para acceder a un elemento secundario individual de los ejes, indexe en el arreglo. A continuación, puede configurar las propiedades del objeto del elemento secundario.
t = ax.Children(2);
t.FontWeight = 'bold';
Asignar previamente el arreglo de los objetos de gráficas
Es una práctica recomendada en MATLAB asignar previamente un arreglo antes de utilizarlo. Utilice el comando gobjects
para asignar previamente un arreglo de los objetos de gráficas. A continuación, puede añadir los objetos de gráficas al arreglo.
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
Conseguir todas las propiedades de los objetos
Los objetos de gráficas en MATLAB tienen muchas propiedades. Para ver las propiedades de un objeto, utilice el comando get
.
get(f)
Alphamap: [0 0.0159 0.0317 0.0476 0.0635 0.0794 0.0952 0.1111 0.1270 0.1429 0.1587 0.1746 0.1905 0.2063 0.2222 0.2381 0.2540 0.2698 0.2857 0.3016 0.3175 0.3333 0.3492 0.3651 0.3810 0.3968 0.4127 0.4286 0.4444 0.4603 ... ] (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: [348 376 583 437] IntegerHandle: on Interruptible: on InvertHardcopy: on KeyPressFcn: '' KeyReleaseFcn: '' MenuBar: 'none' Name: '' NextPlot: 'add' Number: 1 NumberTitle: on OuterPosition: [348 376 583 437] PaperOrientation: 'portrait' 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 376 583 437] 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: ':99'