Esta página aún no se ha traducido para esta versión. Puede ver la versión más reciente de esta página en inglés.

surf

Gráfico de superficie

Descripción

ejemplo

surf(X,Y,Z) crea un gráfico de superficie tridimensional. La función traza los valores de la matriz Z como alturas superiores a una cuadrícula en el plano x-y definido por X e Y. La función también utiliza Z para los datos de color, por lo que el color es proporcional a la altura.

ejemplo

surf(X,Y,Z,C) especifica además el color de la superficie.

surf(Z) crea una superficie y utiliza los índices de columna y fila de los elementos de Z como las coordenadas x e y, respectivamente.

surf(Z,C) especifica además el color de la superficie.

surf(ax,___) traza en los ejes especificados por ax en lugar de en los ejes actuales. Especifique los ejes como el primer argumento de entrada.

ejemplo

surf(___,Name,Value) especifica las propiedades de superficie mediante uno o varios argumentos de par nombre-valor. Por ejemplo, 'FaceAlpha',0.5 crea una superficie semitransparente. Especifique los pares nombre-valor después de todos los demás argumentos de entrada.

ejemplo

s = surf(___) devuelve el objeto de superficie del gráfico. Utilice s para modificar la superficie después de crearla. Para obtener una lista, consulte Surface Properties.

Ejemplos

contraer todo

Cree X, Y y Z como matrices del mismo tamaño. A continuación, trace los datos como una superficie. La superficie utiliza Z para los datos de altura y color.

[X,Y] = meshgrid(1:0.5:10,1:20);
Z = sin(X) + cos(Y);
surf(X,Y,Z)

Especifique los colores de un gráfico de superficie incluyendo una cuarta entrada de matriz, C. Utilice los colores del mapa de colores especificando C como una matriz del mismo tamaño que Z. Agregue una barra de colores al gráfico para mostrar la correspondencia de los valores de los datos de C con los colores del mapa de colores.

[X,Y] = meshgrid(1:0.5:10,1:20);
Z = sin(X) + cos(Y);
C = X.*Y;
surf(X,Y,Z,C)
colorbar

Especifique los colores de un gráfico de superficie incluyendo una cuarta entrada de matriz, CO. Utilice colores verdaderos creando CO como un array de m por n por 3 de valores de triplete RGB, donde Z es m por n. La primera página del array indica el componente rojo para cada color, la segunda página indica el componente verde y la tercera página indica el componente azul.

[X,Y,Z] = peaks(25);
CO(:,:,1) = zeros(25); % red
CO(:,:,2) = ones(25).*linspace(0.5,0.6,25); % green
CO(:,:,3) = ones(25).*linspace(0,1,25); % blue
surf(X,Y,Z,CO)

Cree una superficie semitransparente estableciendo la propiedad FaceAlpha como un argumento de par nombre-valor. Asigne el objeto de superficie a la variable s.

[X,Y] = meshgrid(-5:.5:5);
Z = Y.*sin(X) - X.*cos(Y);
s = surf(X,Y,Z,'FaceAlpha',0.5)

s = 
  Surface with properties:

       EdgeColor: [0 0 0]
       LineStyle: '-'
       FaceColor: 'flat'
    FaceLighting: 'flat'
       FaceAlpha: 0.5000
           XData: [21x21 double]
           YData: [21x21 double]
           ZData: [21x21 double]
           CData: [21x21 double]

  Show all properties

Utilice s para obtener acceso y modificar las propiedades del objeto de superficie después de su creación. Por ejemplo, desactive la visualización de los bordes estableciendo la propiedad EdgeColor.

s.EdgeColor = 'none';

Argumentos de entrada

contraer todo

Coordenadas x, especificadas como una matriz del mismo tamaño que Z o como un vector con longitud n, donde [m,n] = size(Z). Para crear una matriz para dominios arbitrarios, utilice la función meshgrid.

La propiedad XData del objeto de superficie almacena los valores de x.

Ejemplo: [X,Y] = meshgrid(-5:0.5:5)

Tipos de datos: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | categorical | datetime | duration

Coordenadas y, especificadas como una matriz del mismo tamaño que Z o como un vector con longitud m, donde [m,n] = size(Z). Para crear una matriz para dominios arbitrarios, utilice la función meshgrid.

La propiedad YData del objeto de superficie almacena los valores de y.

Ejemplo: [X,Y] = meshgrid(-5:0.5:5)

Tipos de datos: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | categorical | datetime | duration

Coordenadas z, especificadas como una matriz. Si no especifica los colores, Z también establece los colores de la superficie.

La propiedad ZData del objeto de superficie almacena los valores de z.

Ejemplo: Z = [1 2 3; 4 5 6]

Ejemplo: Z = sin(x) + cos(y)

Tipos de datos: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | categorical | datetime | duration

Color para cada vértice, especificado como una matriz del mismo tamaño que Z o como un array de m por n por 3 de tripletes RGB, donde Z es m por n.

  • Si desea utilizar colores del mapa de colores, especifique C como una matriz. La propiedad CDataMapping del objeto de superficie controla la forma en que los valores de C se asignan a los colores del mapa de colores.

  • Si desea utilizar colores verdaderos, especifique C como un array de tripletes RGB.

La propiedad CData del objeto de superficie almacena los datos de color. Para obtener un control adicional sobre los colores de la superficie, utilice las propiedades FaceColor y EdgeColor.

Ejes en los que trazar, especificados como un objeto de ejes. Si no especifica los ejes, surf traza en los ejes actuales.

Argumentos de par nombre-valor

Ejemplo: surf(X,Y,Z,'FaceAlpha',0.5,'EdgeColor','none') crea una superficie semitransparente sin bordes dibujados.

Nota

Las propiedades enumeradas aquí son solo un subconjunto. Para obtener una lista completa, consulte Surface Properties.

Color de línea de borde, especificado como uno de los valores enumerados aquí. El color predeterminado de [0 0 0] corresponde a los bordes negros.

ValorDescripción
'none'No se dibujan los bordes.
'flat'

Se usa un color diferente para cada borde basándose en los valores de la propiedad CData. En primer lugar, debe especificar la propiedad CData como una matriz del mismo tamaño que ZData. El valor de color en el primer vértice de cada cara (en las direcciones positivas x e y) determina el color de los bordes adyacentes. No se puede utilizar este valor cuando la propiedad EdgeAlpha se establece como 'interp'.

'interp'

Utilice colores interpolados para cada borde basándose en los valores de la propiedad CData. En primer lugar, debe especificar la propiedad CData como una matriz del mismo tamaño que ZData. El color varía en cada borde interpolando linealmente los valores de color en los vértices. No se puede utilizar este valor cuando la propiedad EdgeAlpha se establece como 'flat'.

Nombre de color o triplete RGB

Utilice el color especificado para todos los bordes. Esta opción no utiliza los valores de color de la propiedad CData.

Un triplete RGB es un vector de fila de tres elementos cuyos elementos especifican las intensidades de los componentes rojo, verde y azul del color. Las intensidades deben estar en el rango [0,1]; por ejemplo, [0.4 0.6 0.7]. Si lo prefiere, puede especificar algunos colores comunes por su nombre. Esta tabla muestra las opciones de nombre de color largo y corto, y los valores equivalentes de triplete RGB.

OpciónDescripciónTriplete RGB equivalente
'red' o 'r'Rojo[1 0 0]
'green' o 'g'Verde[0 1 0]
'blue' o 'b'Azul[0 0 1]
'yellow' o 'y'Amarillo[1 1 0]
'magenta' o 'm'Magenta[1 0 1]
'cyan' o 'c'Cian[0 1 1]
'white' o 'w'Blanco[1 1 1]
'black' o 'k'Negro[0 0 0]

Estilo de línea, especificado como una de las opciones enumeradas en esta tabla.

Estilo de líneaDescripciónLínea resultante
'-'Línea continua

'--'Línea de guiones

':'Línea de puntos

'-.'Línea de guiones y puntos

'none'Sin líneaSin línea

Color de la cara, especificado como uno de los valores de esta tabla.

ValorDescripción
'flat'

Utilice un color diferente para cada cara basándose en los valores de la propiedad CData. En primer lugar, debe especificar la propiedad CData como una matriz del mismo tamaño que ZData. El valor de color en el primer vértice de cada cara (en las direcciones positivas de x e y) determina el color de toda la cara. No se puede utilizar este valor cuando la propiedad FaceAlpha se establece como 'interp'.

'interp'

Utilice colores interpolados para cada cara basándose en los valores de la propiedad CData. En primer lugar, debe especificar la propiedad CData como una matriz del mismo tamaño que ZData. El color varía en cada cara interpolando los valores de color en los vértices. No se puede utilizar este valor cuando la propiedad FaceAlpha se establece como 'flat'.

Nombre de color o triplete RGB

Utilice el color especificado para todas las caras. Esta opción no utiliza los valores de color de la propiedad CData.

'texturemap'Transforme los datos de color en CData para que se adapten a la superficie.
'none'No dibuje las caras.

Un triplete RGB es un vector de fila de tres elementos cuyos elementos especifican las intensidades de los componentes rojo, verde y azul del color. Las intensidades deben estar en el rango [0,1]; por ejemplo, [0.4 0.6 0.7]. Si lo prefiere, puede especificar algunos colores comunes por su nombre. Esta tabla muestra las opciones de nombre de color largo y corto, y los valores equivalentes de triplete RGB.

OpciónDescripciónTriplete RGB equivalente
'red' o 'r'Rojo[1 0 0]
'green' o 'g'Verde[0 1 0]
'blue' o 'b'Azul[0 0 1]
'yellow' o 'y'Amarillo[1 1 0]
'magenta' o 'm'Magenta[1 0 1]
'cyan' o 'c'Cian[0 1 1]
'white' o 'w'Blanco[1 1 1]
'black' o 'k'Negro[0 0 0]

Transparencia de la cara, especificada como uno de estos valores:

  • Escalar en el rango [0,1]: utilizar una transparencia uniforme en todas las caras. Un valor de 1 es completamente opaco y 0 es completamente transparente. Los valores entre 0 y 1 son semitransparentes. Esta opción no utiliza los valores de transparencia de la propiedad AlphaData.

  • 'flat': utilizar una transparencia diferente para cada cara basándose en los valores de la propiedad AlphaData. El valor de transparencia en el primer vértice determina la transparencia de toda la cara. En primer lugar, debe especificar la propiedad AlphaData como una matriz del mismo tamaño que la propiedad ZData. La propiedad FaceColor también debe establecerse como 'flat'.

  • 'interp': utilizar la transparencia interpolada para cada cara basándose en los valores de la propiedad AlphaData. La transparencia varía en cada cara interpolando los valores en los vértices. En primer lugar, debe especificar la propiedad AlphaData como una matriz del mismo tamaño que la propiedad ZData. La propiedad FaceColor también debe establecerse como 'interp'.

  • 'texturemap': transforma los datos en AlphaData de forma que se ajusten a la superficie.

Efecto de los objetos de luz en las caras, especificado como uno de estos valores:

  • 'flat': aplicar la luz uniformemente en todas las caras. Utilice este valor para ver objetos facetados.

  • 'gouraud': variar la luz en las caras. Calcule la luz en los vértices y luego interpole linealmente la luz a través de las caras. Utilice este valor para ver superficies curvas.

  • 'none': no aplicar luz de objetos de luz a las caras.

Para agregar un objeto de luz a los ejes, utilice la función light.

Nota

Se ha eliminado el valor 'phong'. En su lugar, utilice 'gouraud'.

Introducido antes de R2006a