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.0660 0.4430 0.7450]
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 … ] (1×41 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 … ] (1×41 double)
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.1294 0.1294 0.1294]
HorizontalAlignment: 'left'
Position: [3.1416 1.2246e-16 0]
Units: 'data'
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: [1×1 Figure]
ScreenPixelsPerInch: 100
ScreenSize: [1 1 1280 1024]
MonitorPositions: [1 1 1280 1024]
Units: 'pixels'
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: [167 243 560 337.1852]
Units: 'pixels'
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 = 3×1 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 =
1×5 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 … ] (1×64 double)
AutoResizeChildren: off
BeingDeleted: off
BusyAction: 'queue'
ButtonDownFcn: ''
Children: [1×1 Axes]
Clipping: on
CloseRequestFcn: 'closereq'
Color: [1 1 1]
Colormap: [256×3 double]
ContextMenu: [0×0 GraphicsPlaceholder]
CreateFcn: ''
CurrentAxes: [1×1 Axes]
CurrentCharacter: ''
CurrentObject: [0×0 GraphicsPlaceholder]
CurrentPoint: [0 0]
DeleteFcn: ''
DockControls: on
FileName: ''
GraphicsSmoothing: on
HandleVisibility: 'on'
Icon: ''
InnerPosition: [167 243 560 337.1852]
IntegerHandle: on
Interruptible: on
InvertHardcopy: on
KeyPressFcn: ''
KeyReleaseFcn: ''
MenuBar: 'none'
Name: ''
NextPlot: 'add'
Number: 1
NumberTitle: on
OuterPosition: [167 243 560 337.1852]
PaperOrientation: 'portrait'
PaperPosition: [1.4500 3.8141 5.6000 3.3719]
PaperPositionMode: 'auto'
PaperSize: [8.5000 11]
PaperType: 'usletter'
PaperUnits: 'inches'
Parent: [1×1 Root]
Pointer: 'arrow'
PointerShapeCData: [16×16 double]
PointerShapeHotSpot: [1 1]
Position: [167 243 560 337.1852]
Renderer: 'opengl'
RendererMode: 'auto'
Resize: on
Scrollable: off
SelectionType: 'normal'
SizeChangedFcn: ''
Tag: ''
Theme: [1×1 matlab.graphics.theme.GraphicsTheme]
ThemeChangedFcn: ''
ThemeMode: 'auto'
ToolBar: 'none'
Type: 'figure'
Units: 'pixels'
UserData: []
Visible: off
WindowButtonDownFcn: ''
WindowButtonMotionFcn: ''
WindowButtonUpFcn: ''
WindowKeyPressFcn: ''
WindowKeyReleaseFcn: ''
WindowScrollWheelFcn: ''
WindowState: 'normal'
WindowStyle: 'normal'
XDisplay: ':99'