surf
Gráfica de superficie
Descripción
surf(
crea una gráfica de superficie tridimensional, que es una superficie tridimensional con colores de borde y de cara sólidos. La función representa los valores en la matriz X
,Y
,Z
)Z
como alturas sobre una cuadrícula en el plano x-y que definen X
e Y
. El color de la superficie varía según las alturas que especifique Z
.
surf(
crea una gráfica de superficie y usa los índices de columna y de fila de los elementos de Z
)Z
como coordenadas x-y.
surf(
representa en los ejes que especifica ax
,___)ax
en lugar de en los ejes actuales. Especifique los ejes como primer argumento de entrada.
surf(___,
especifica las propiedades de superficie utilizando uno o más argumentos de par nombre-valor. Por ejemplo, Name,Value
)'FaceAlpha',0.5
crea una superficie semitransparente.
s = surf(___)
devuelve el objeto de superficie de la gráfica. Utilice s
para modificar la superficie después de crearla. Para obtener una lista de las propiedades, consulte Surface Properties.
Ejemplos
Crear una gráfica de superficie
Cree tres matrices del mismo tamaño. Después, represéntelas como una superficie. La gráfica de superficie utiliza Z
tanto para la altura como para el color.
[X,Y] = meshgrid(1:0.5:10,1:20); Z = sin(X) + cos(Y); surf(X,Y,Z)
Especificar colores del mapa de colores para una gráfica de superficie
Especifique los colores para una gráfica de superficie incluyendo una cuarta entrada de matriz, C
. La gráfica de superficie utiliza Z
para la altura y C
para el color. Especifique los colores utilizando un mapa de colores, que usa números únicos para representar los colores de un espectro. Cuando utilice un mapa de colores, C
tiene el mismo tamaño que Z
. Añada una barra de colores a la gráfica para mostrar cómo los valores de los datos de C
se corresponden con los colores en el 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
Especificar colores reales para una gráfica de superficie
Especifique los colores para una gráfica de superficie incluyendo una cuarta entrada de matriz, CO
. La gráfica de superficie utiliza Z
para la altura y CO
para el color. Especifique los colores utilizando un color real, que usa tripletes de números para representar todos los colores posibles. Cuando usa un color real, si Z
es m
por n
, CO
es m
por n
por 3. La primera página del arreglo 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)
Modificar la apariencia de una gráfica de superficie
Cree una superficie semitransparente especificando el par nombre-valor FaceAlpha
con 0.5
como valor. Para permitir más modificaciones, 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] Use GET to show all properties
Utilice s
para acceder y modificar las propiedades de un objeto de superficie después de crearlo. Por ejemplo, oculte los bordes estableciendo la propiedad EdgeColor
.
s.EdgeColor = 'none';
Argumentos de entrada
X
— Coordenadas x
matriz | vector
Coordenadas x, especificadas como matriz del mismo tamaño que Z
o como vector con una longitud n
, en el que [m,n] = size(Z)
. Si no especifica valores para X
e Y
, surf
utiliza los vectores (1:n)
y (1:m)
.
Puede usar la función meshgrid
para crear matrices X
e Y
.
La propiedad XData
del objeto Surface
guarda las coordenadas x.
Ejemplo: X = 1:10
Ejemplo: X = [1 2 3; 1 2 3; 1 2 3]
Ejemplo: [X,Y] = meshgrid(-5:0.5:5)
Tipos de datos: single
| double
| int8
| int16
| int32
| int64
| uint8
| uint16
| uint32
| uint64
| categorical
| datetime
| duration
Y
— Coordenadas y
matriz | vector
Coordenadas y, especificadas como matriz del mismo tamaño que Z
o como vector con una longitud m
, en el que [m,n] = size(Z)
. Si no especifica valores para X
e Y
, surf
utiliza los vectores (1:n)
y (1:m)
.
Puede usar la función meshgrid
para crear las matrices X
e Y
.
La propiedad YData
del objeto de superficie guarda las coordenadas y.
Ejemplo: Y = 1:10
Ejemplo: Y = [1 1 1; 2 2 2; 3 3 3]
Ejemplo: [X,Y] = meshgrid(-5:0.5:5)
Tipos de datos: single
| double
| int8
| int16
| int32
| int64
| uint8
| uint16
| uint32
| uint64
| categorical
| datetime
| duration
Z
— Coordenadas z
matriz
Coordenadas z, especificadas como matriz. Z
debe tener al menos dos filas y dos columnas.
Z
especifica la altura de la gráfica de superficie en cada coordenada x-y. Si no especifica los colores, Z
también especifica los colores de superficie.
La propiedad ZData
del objeto de superficie guarda las coordenadas 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
C
— Arreglo de colores
matriz | Arreglo m
por n
por 3
de tripletes RGB
Arreglo de colores, especificado como matriz m
por n
de índices del mapa de colores o como arreglo m
por n
por 3
de tripletes RGB, en el que Z
es m
por n
.
Para usar colores del mapa de colores, especifique
C
como matriz.C
indica un color en el mapa de colores en cada punto de cuadrícula de la superficie. La propiedadCDataMapping
del objeto de superficie controla cómo se corresponden los valores deC
con colores en el mapa de colores.Para usar colores de color real, especifique
C
como arreglo de tripletes RGB.
Para obtener más información, consulte Diferencias entre los mapas de colores y el color real.
La propiedad CData
del objeto de superficie guarda el arreglo de colores. Para tener un mayor control sobre el color de la superficie, utilice las propiedades FaceColor
y EdgeColor
.
ax
— Ejes en los que representar
objeto de ejes
Ejes en los que representar, especificados como objeto axes
. Si no especifica los ejes, surf
representa en los ejes actuales.
Argumentos de par nombre-valor
Especifique pares opcionales de argumentos como Name1=Value1,...,NameN=ValueN
, donde Name
es el nombre del argumento y Value
es el valor correspondiente. Los argumentos nombre-valor deben aparecer después de otros argumentos, pero el orden de los pares no importa.
En las versiones anteriores a R2021a, utilice comas para separar cada nombre y valor, y encierre Name
entre comillas.
Ejemplo: surf(X,Y,Z,'FaceAlpha',0.5,'EdgeColor','none')
crea una superficie semitransparente sin bordes dibujados.
Nota
Las propiedades que se enumeran aquí son solo un subconjunto. Para obtener una lista completa, consulte Surface Properties.
EdgeColor
— Color de línea de borde
[0 0 0]
(predeterminado) | 'none'
| 'flat'
| 'interp'
| Triplete RGB | código de color hexadecimal | 'r'
| 'g'
| 'b'
| ...
Color de línea de borde, especificado como uno de los valores que se enumeran aquí. El color predeterminado de [0 0 0]
se corresponde con bordes negros.
Valor | Descripción |
---|---|
'none' | No dibuje los bordes. |
'flat' | Utilice un color diferente para cada borde según los valores en la propiedad |
'interp' | Utilice colores interpolados para cada borde según los valores en la propiedad
|
Triplete RGB, código de color hexadecimal o nombre del color | Utilice el color especificado para todos los bordes. Esta opción no incluye los valores de color en la propiedad
|
Los tripletes RGB y los códigos de color hexadecimales son útiles para especificar colores personalizados.
Un triplete RGB es un vector 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]
.Un código de color hexadecimal es un vector de caracteres o un escalar de cadena que comienza con el símbolo de almohadilla (
#
) seguido de tres o seis dígitos hexadecimales, que pueden oscilar entre0
yF
. Los valores no distinguen entre mayúsculas y minúsculas. Así, los códigos de color"#FF8800"
,"#ff8800"
,"#F80"
y"#f80"
son equivalentes.
Como alternativa, puede especificar algunos colores frecuentes por su nombre. En esta tabla se enumeran las opciones de color con su nombre, los tripletes RGB equivalentes y los códigos de color hexadecimales.
Nombre del color | Nombre corto | Triplete RGB | Código de color hexadecimal | Apariencia |
---|---|---|---|---|
"red" | "r" | [1 0 0] | "#FF0000" | |
"green" | "g" | [0 1 0] | "#00FF00" | |
"blue" | "b" | [0 0 1] | "#0000FF" | |
"cyan" | "c" | [0 1 1] | "#00FFFF" | |
"magenta" | "m" | [1 0 1] | "#FF00FF" | |
"yellow" | "y" | [1 1 0] | "#FFFF00" | |
"black" | "k" | [0 0 0] | "#000000" | |
"white" | "w" | [1 1 1] | "#FFFFFF" |
A continuación, se indican los tripletes RGB y los códigos de color hexadecimales de los colores predeterminados que MATLAB® utiliza en muchos tipos de gráficas.
Triplete RGB | Código de color hexadecimal | Apariencia |
---|---|---|
[0 0.4470 0.7410] | "#0072BD" | |
[0.8500 0.3250 0.0980] | "#D95319" | |
[0.9290 0.6940 0.1250] | "#EDB120" | |
[0.4940 0.1840 0.5560] | "#7E2F8E" | |
[0.4660 0.6740 0.1880] | "#77AC30" | |
[0.3010 0.7450 0.9330] | "#4DBEEE" | |
[0.6350 0.0780 0.1840] | "#A2142F" |
LineStyle
— Estilo de línea
"-"
(predeterminado) | "--"
| ":"
| "-."
| "none"
Estilo de línea, especificado como una de las opciones enumeradas en esta tabla.
Estilo de línea | Descripción | Línea resultante |
---|---|---|
"-" | Línea continua |
|
"--" | Línea discontinua |
|
":" | Línea de puntos |
|
"-." | Línea de puntos y rayas |
|
"none" | Sin línea | Sin línea |
FaceColor
— Color de cara
'flat'
(predeterminado) | 'interp'
| 'none'
| 'texturemap'
| Triplete RGB | código de color hexadecimal | 'r'
| 'g'
| 'b'
| ...
Color de cara, especificado como uno de los valores de esta tabla.
Valor | Descripción |
---|---|
'flat' | Utilice un color diferente para cada cara según los valores en la propiedad |
'interp' | Utilice colores interpolados para cada cara según los valores en la propiedad
|
Triplete RGB, código de color hexadecimal o nombre del color | Utilice el color especificado para todas las caras. Esta opción no incluye los valores de color en la propiedad
|
'texturemap' | Transforme los datos de color de CData , para que se adapte a la superficie. |
'none' | No dibuje las caras. |
Los tripletes RGB y los códigos de color hexadecimales son útiles para especificar colores personalizados.
Un triplete RGB es un vector 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]
.Un código de color hexadecimal es un vector de caracteres o un escalar de cadena que comienza con el símbolo de almohadilla (
#
) seguido de tres o seis dígitos hexadecimales, que pueden oscilar entre0
yF
. Los valores no distinguen entre mayúsculas y minúsculas. Así, los códigos de color"#FF8800"
,"#ff8800"
,"#F80"
y"#f80"
son equivalentes.
Como alternativa, puede especificar algunos colores frecuentes por su nombre. En esta tabla se enumeran las opciones de color con su nombre, los tripletes RGB equivalentes y los códigos de color hexadecimales.
Nombre del color | Nombre corto | Triplete RGB | Código de color hexadecimal | Apariencia |
---|---|---|---|---|
"red" | "r" | [1 0 0] | "#FF0000" | |
"green" | "g" | [0 1 0] | "#00FF00" | |
"blue" | "b" | [0 0 1] | "#0000FF" | |
"cyan" | "c" | [0 1 1] | "#00FFFF" | |
"magenta" | "m" | [1 0 1] | "#FF00FF" | |
"yellow" | "y" | [1 1 0] | "#FFFF00" | |
"black" | "k" | [0 0 0] | "#000000" | |
"white" | "w" | [1 1 1] | "#FFFFFF" |
A continuación, se indican los tripletes RGB y los códigos de color hexadecimales de los colores predeterminados que MATLAB utiliza en muchos tipos de gráficas.
Triplete RGB | Código de color hexadecimal | Apariencia |
---|---|---|
[0 0.4470 0.7410] | "#0072BD" | |
[0.8500 0.3250 0.0980] | "#D95319" | |
[0.9290 0.6940 0.1250] | "#EDB120" | |
[0.4940 0.1840 0.5560] | "#7E2F8E" | |
[0.4660 0.6740 0.1880] | "#77AC30" | |
[0.3010 0.7450 0.9330] | "#4DBEEE" | |
[0.6350 0.0780 0.1840] | "#A2142F" |
FaceAlpha
— Transparencia de cara
1 (predeterminado) | escalar en el intervalo [0,1]
| 'flat'
| 'interp'
| 'texturemap'
Transparencia de cara, especificada como uno de estos valores:
Escalar en el intervalo
[0,1]
: utiliza una transparencia uniforme en todas las caras. Un valor de1
es totalmente opaco y0
es totalmente transparente. Los valores situados entre0
y1
son semitransparentes. Esta opción no utiliza los valores de transparencia en la propiedadAlphaData
.'flat'
: utiliza una transparencia diferente para cada cara según los valores en la propiedadAlphaData
. El valor de transparencia del primer vértice determina la transparencia de toda la cara. En primer lugar, debe especificar la propiedadAlphaData
como matriz del mismo tamaño que la propiedadZData
. La propiedadFaceColor
también se debe establecer en'flat'
.'interp'
: utilice transparencia interpolada para cada cara según los valores de la propiedadAlphaData
. La transparencia varía en cada cara interpolando los valores en los vértices. En primer lugar, debe especificar la propiedadAlphaData
como matriz del mismo tamaño que la propiedadZData
. La propiedadFaceColor
también se debe establecer en'interp'
.'texturemap'
: transforma los datos deAlphaData
, para que se adapten a la superficie.
FaceLighting
— Efecto de los objetos de luz en las caras
'flat'
(predeterminado) | 'gouraud'
| 'none'
Efecto de los objetos de luz en las caras, especificado como uno de estos valores:
'flat'
: aplica la luz uniformemente en toda la cara. Utilice este valor para ver objetos con caras.'gouraud'
: varía la luz en las distintas caras. Calcula la luz en los vértices y, después, interpola linealmente la luz en las distintas caras. Utilice este valor para ver superficies curvas.'none'
: no aplica luz de objetos de luz a las caras.
Para añadir un objeto de luz a los ejes, utilice la función light
.
Nota
Se ha eliminado el valor 'phong'
. En su lugar, utilice 'gouraud'
.
Capacidades ampliadas
Arreglos GPU
Acelere código mediante la ejecución en una unidad de procesamiento gráfico (GPU) mediante Parallel Computing Toolbox™.
Notas y limitaciones de uso:
Esta función acepta arreglos de GPU, pero no se ejecuta en una GPU.
Para obtener más información, consulte Run MATLAB Functions on a GPU (Parallel Computing Toolbox).
Arreglos distribuidos
Realice particiones de arreglos grandes por toda la memoria combinada de su cluster mediante Parallel Computing Toolbox™.
Notas y limitaciones de uso:
Esta función opera sobre arreglos distribuidos, pero se ejecuta en el cliente MATLAB.
Para obtener más información, consulte Run MATLAB Functions with Distributed Arrays (Parallel Computing Toolbox).
Historial de versiones
Introducido antes de R2006a
Consulte también
Funciones
Propiedades
Comando de MATLAB
Ha hecho clic en un enlace que corresponde a este comando de MATLAB:
Ejecute el comando introduciéndolo en la ventana de comandos de MATLAB. Los navegadores web no admiten comandos de MATLAB.
Select a Web Site
Choose a web site to get translated content where available and see local events and offers. Based on your location, we recommend that you select: .
You can also select a web site from the following list:
How to Get Best Site Performance
Select the China site (in Chinese or English) for best site performance. Other MathWorks country sites are not optimized for visits from your location.
Americas
- América Latina (Español)
- Canada (English)
- United States (English)
Europe
- Belgium (English)
- Denmark (English)
- Deutschland (Deutsch)
- España (Español)
- Finland (English)
- France (Français)
- Ireland (English)
- Italia (Italiano)
- Luxembourg (English)
- Netherlands (English)
- Norway (English)
- Österreich (Deutsch)
- Portugal (English)
- Sweden (English)
- Switzerland
- United Kingdom (English)