Las características gráficas tratadas hasta ahora pertenecen al interface gráfico de alto nivel de Matlab. Sin embargo, también existen un conjunto de comandos de bajo nivel (Handle Graphics), que permiten crear y manipular figuras, ejes, líneas, superficies, imágenes, texto, menús y otros objetos gráficos. Entre los comandos para crear objetos gráficos están los siguientes:
figure(h) o h=figure Crea la figura como un objeto de nombre h, y la sitúa como figura corriente. Se utiliza el comando gcf(h) para referir cualquier propiedad a la figura h. El comando close(h) cierra la figura h. El comando whitebg(h) cambia el color del fondo de la figura h. El comando clf cierra la figura corriente. El comando graymon sitúa la escala de grises. El comando ne w pl o t determina los ejes para hacer una nueva figura. El comando refresh redibuja de nuevo la figura actual.
axes(e) o e=axes Crea los ejes como un objeto de nombre e, en la figura corriente. Se utiliza el comando gca(e) para referir cualquier propiedad a los ejes e. Se utiliza el comando cla para borrar todos los objetos referentes a los ejes corrientes.
l=line(x,y) o l=line(x,y,z)
Crea, como un objeto de nombre l, la línea que une los puntos (X,Y) en el plano, o (X,Y,Z) en el espacio
p=patch(X,Y,C) o patch(X,Y,Z,C)
Crea un área poligonal opaca que está definida por el conjunto de puntos (X,Y) en el plano, o (X,Y,Z) en el espacio, y cuyo color está dado por C, como un objeto de nombre p
s=surface(X,Y,Z,C) Crea la superficie paramétrica definida por X, Y y Z y cuyo color está dado por C, como un objeto de nombre s
i=image(C) Crea la imagen definida por los colores dados en la matriz C, como un objeto de nombre i,
t=text(x,y,’cadena’) o t=text(x,y,z,’cadena’)
Crea el texto definido por la cadena, localizado en el punto (x,y) del plano o en el punto (x,y,z) del espacio
Cada objeto tiene un nivel de jerarquía. Los padres de un objeto son los que tienen jerarquía superior a él, y los hijos son los objetos de jerarquía inferior. El objeto de mayor jerarquía es el creado con figure, a continuación se encuentra el creado por axes, y por último, y al mismo nivel, se encuentran los creados por image, patch, surface, text y line. Esto quiere decir, que si por ejemplo se quiere crear una superficie, primero ha de crearse la figura en la que se va a graficar, después los ejes y por último la propia superficie.
Hasta ahora hemos visto los comandos que permiten crear objetos, pero además todos estos objetos pueden dotarse de determinadas propiedades, como estilo de línea, color, etc. Las lista de propiedades posibles para cada objeto es muy larga, y su conocimiento completo requiere la consulta detallada del manual “MATLAB Reference Manual”. Como norma general, el nombre de una propiedad de un objeto es una palabra compuesta cuyas componentes empiezan por letra mayúscula. Por ejemplo, la propiedad estilo de línea tiene de nombre LineStyle. Los nombres de las propiedades a asignar por defecto a un objeto comienzan por Default, como por ejemplo DefaultFigureColor, que asigna el color por defecto a una figura.
A continuación se presentan algunas de las propiedades más típicas a situar en los diferentes objetos.
Objeto Propiedades Posibles valores
--- ----
Figure Color (color de fondo) ‘y’, ‘m’, ‘c’, ‘r’, ‘g’, ‘b’, ‘w’, ‘k’ ColorMap (color de mapa) hot(p), gray(p), pink(p), ....
Position (posición en pantalla) [left, botton, width, height] Name (nombre) cadena con el nombre
MinColorMap (nº mín. de colo.) nº mínimo de colores para el mapa NextPlot (modo del gráf. siguien.) new, add, replace
NumberTitle (nº en la figura) on, off
Units (unidades de medida) pixels, inches, centimeters, points Resize(tamaño figura con ratón) on (se puede cambiar), off (no) Axes Box (caja para el gráfico) on, of
Color(color de los ejes) ‘y’, ‘m’, ‘c’, ‘r’, ‘g’, ‘b’, ‘w’, ‘k’ GridLineStyle (línea para malla) ‘-’, ‘--’, ‘:’, ‘-.’
Position (posición en pantalla) [left, botton, width, height] TickLength (long. entre marcas) un valor numérico
TickDir (dirección de las marcas) in, out
Units (unidades de medida) pixels, inches, centimeters, points View (punto de vista) [azimut, elevación]
FontAngle (ángulo de fuente) normal, italic, oblique
FontName (nombre de fuente) texto con el nombre de la fuente FontSize (tamaño de fuente) valor numérico
FontWeight (peso de la fuente) light, normal, demi, bold DrawMode (modo de dibujo) normal, fast (rápido) Xcolor, Ycolor, Zcolor (color ejes) [min , max]
XDir,YDir, ZDir (dirección ejes) normal (crecen de izq. a der.), reverse XGrid,YGrid, Zgrid (rejillas) on, off
XLabel,YLabel, Zlabel (etiquetas) cadena con el texto de las etiquetas
XLim,YLim,Zlim (valores límites) [min, max] (intervalo de variación) XScale,YScale,ZScale (escalas) linear (lineal), log(logarítmica)
XTick,YTick,ZTick (marcas) [m1,m2,....] (situación marcas en eje) Line Color(color de la línea) ‘y’, ‘m’, ‘c’, ‘r’, ‘g’, ‘b’, ‘w’, ‘k’
LineStyle (estilo de línea) ‘-’, ‘--’, ‘:’, ‘-.’, ‘+’, ‘*’, ‘.’, ‘x’ LineWidth (anchura de línea) valor numérico
Visible (línea visible o no en pant.) on, off
Text Color(color de texto) ‘y’, ‘m’, ‘c’, ‘r’, ‘g’, ‘b’, ‘w’, ‘k’ FontAngle (ángulo de fuente) normal, italic, oblique
FontName (nombre de fuente) texto con el nombre de la fuente FontSize (tamaño de fuente) valor numérico
FontWeight (peso de la fuente) light, normal, demi, bold HorizontalAlignment (ajuste hor.) left, center, right
VerticalAlignment (ajuste vert.) top, cap, middle, baseline, bottom Position (posición en pantalla) [x, y, z] (punto de situación)
Rotation (orientación del texto) 0, ±90, ±180, ±270
Units (unidades de medida) pixels, inches, centimeters, points String (cadena de texto a situar) cadena con el texto
Surface Cdata (color de cada punto) matriz de colores
Edgecolor (color de rejillas) ‘y’,‘m’,..., none, flat, interp Facecolor (color de las caras) ‘y’,‘m’,..., none, flat, interp
LineStyle (estilo de línea) ‘-’, ‘--’, ‘:’, ‘-.’, ‘+’, ‘*’, ‘.’, ‘x’ LineWidth (anchura de línea) valor numérico
MeshStyle (líneas en filas y col.) row, colum, both Visible (línea visible o no en pant.) on, off
Xdata,Ydata,Zdata (coordenad.) conjunto de coordenadas de la superf. Patch Cdata (color de cada punto) matriz de colores
Edgecolor (color de los ejes) ‘y’,‘m’,..., none, flat, interp Facecolor (color de las caras) ‘y’,‘m’,..., none, flat, interp LineWidth (anchura de línea) valor numérico
Visible (línea visible o no en pant.) on, off
Xdata,Ydata,Zdata (coordenad.) conjunto de coordenadas de la superf. Image Cdata (color de cada punto) matriz de colores
Xdata,Ydata (coordenadas) conjunto de coordenadas de la imágen Entre los comandos que permiten realizar operaciones con los objetos gráficos ya creados tenemos los siguientes:
set(h, ‘propiedad1’, ‘propiedad2’,...)
Sitúa las propiedades especificadas en el objeto h
get(h, ‘propiedad’) Devuelve el valor corriente de la propiedad especificada para el objeto h
rotate(h, [a, e], a, [p,q,r])
Rota el objeto h un ángulo a, según los ejes de azimut a y elevación e, siendo el origen el punto (p,q,r)
reset(h) Actualiza todas las propiedades asignadas al objeto h y coloca sus propiedades por defecto
delete(h) Borra el objeto h
Veamos algunos ejemplos.
La siguiente sintaxis sitúa los límites de variación de los ejes X, Y y Z corrientes en los valores especificados.
» set(gca, ‘Xlim’, [0,10], ‘Ylim’, [-25, 25], ‘Zlim’ [-8,10])
La siguiente sintaxis sitúa el color del fondo de la figura corriente en blanco. » set(gcf, ‘Color’, ‘w’)
La sintaxis siguiente devuelve las propiedades vigentes para una superficie previamente creada con nombre “surfh”.
» get(surfh)
La siguiente sintaxis devuelve el estilo de línea de la superficie “surfh”. » get(surfh, ‘LineStyle’)
La siguiente sintaxis borra la superficie “surfh”. » delete(surfh)