Main Content

La traducción de esta página aún no se ha actualizado a la versión más reciente. Haga clic aquí para ver la última versión en inglés.

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)');

Figure contains an axes object. The axes object contains 2 objects of type line, text.

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')

Figure contains an axes object. The axes object contains 3 objects of type 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'

  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';

Figure contains an axes object. The axes object contains 3 objects of type line, text.

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';

Figure contains an axes object. The axes object contains 3 objects of type line, text.

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'