Main Content

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.

Incorporar transparencia a los objetos de gráficos

¿Qué es la transparencia?

La transparencia de un objeto de gráficos determina el grado en el que puede ver a través de dicho objeto. Incorpore transparencia a los objetos de gráficos para personalizar las vistas de sus gráficas o revelar detalles sobre un objeto que, de otra forma, estarían ocultos. Esta tabla muestra la diferencia entre una superficie opaca y una transparente.

Objeto opacoObjeto semitransparente

Objetos de gráficos que admiten transparencia

Controle la transparencia de un objeto mediante la función alpha o configurando las propiedades de un objeto relacionadas con la transparencia. Algunos objetos de gráficos admiten el uso de un valor distinto de transparencia para las caras frente a los bordes del objeto.

Esta tabla indica los objetos que admiten transparencia y las propiedades correspondientes. Configure las propiedades a un valor escalar en el intervalo [0,1]. Un valor de 0 significa una transparencia total; un valor de 1, opacidad total, y valores entre 0 y 1, semitransparencia.

Objetos de gráficos que admiten transparenciaPropiedades para una transparencia uniforme
ÁreaFaceAlpha
EdgeAlpha
Series de barrasFaceAlpha
EdgeAlpha
Series de dispersiónMarkerFaceAlpha
MarkerEdgeAlpha
HistogramaFaceAlpha
Histograma2FaceAlpha
Superficie de la gráficaFaceAlpha
EdgeAlpha
Superficie primitivaFaceAlpha
EdgeAlpha
ParcheFaceAlpha
EdgeAlpha
ImagenAlphaData

Sugerencia

Los objetos de parche, superficie e imagen admiten el uso de datos alfa para modificar la transparencia del objeto. Para obtener más información, consulte Modificar la transparencia con datos alfa.

Crear gráficas de área con transparencia

Combine dos gráficas de área semitransparentes configurando las propiedades FaceAlpha y EdgeAlpha para cada objeto de área.

x = linspace(0,10);
y1 = 4 + sin(x).*exp(0.1*x);
area(x,y1,'FaceColor','b','FaceAlpha',.3,'EdgeAlpha',.3)

y2 = 4 + cos(x).*exp(0.1*x);
hold on
area(x,y2,'FaceColor','r','FaceAlpha',.3,'EdgeAlpha',.3)
hold off

Crear gráficas de barras con transparencia

Cree una gráfica de barras semitransparente estableciendo la propiedad FaceAlpha del objeto de series de barras en un valor entre 0 y 1. Muestre las líneas de la cuadrícula.

month = 1:5;
sales = [10 25 85 35 16];
bar(month,sales,'FaceAlpha',.5)
grid on

Crear gráficas de dispersión con transparencia

Cree un diagrama de dispersión mediante marcadores semitransparentes de color azul. A continuación, añada un segundo diagrama de dispersión mediante marcadores semitransparentes de color rojo. Especifique el color de los marcadores configurando las propiedades MarkerFaceColor y MarkerEdgeColor del objeto de la serie de dispersión. Especifique la transparencia estableciendo las propiedades MarkerFaceAlpha y MarkerEdgeAlpha en un valor escalar entre 0 y 1.

x = [5 10 11 13 18];
y1 = [40 80 150 80 50];
a1 = 100*[100 50 80 30 50];
scatter(x,y1,a1,'MarkerFaceColor','b','MarkerEdgeColor','b',...
    'MarkerFaceAlpha',.2,'MarkerEdgeAlpha',.2)
axis([0 20 0 200])

x = [2 6 8 11 13];
y2 = [30 40 100 60 140];
a2 = 100*[30 50 30 80 80];
hold on
scatter(x,y2,a2,'MarkerFaceColor','r','MarkerEdgeColor','r',...
    'MarkerFaceAlpha',.2,'MarkerEdgeAlpha',.2)
hold off

Modificar la transparencia con datos alfa

Los objetos de parche, superficie e imagen disponen de unas pocas propiedades adicionales para modificar la transparencia de los objetos.

  • Imágenes: especifique un valor de transparencia distinto para cada elemento de la imagen. Especifique los valores configurando la propiedad AlphaData en un arreglo con el mismo tamaño que en la propiedad CData.

  • Gráficas y superficies primitivas: especifique un valor de transparencia distinto para todas las caras y bordes. También puede especificar si utilizar transparencias planas o interpoladas en todas las caras o bordes. Especifique primero los valores de transparencia configurando la propiedad AlphaData en un arreglo con el mismo tamaño que en la propiedad ZData. Después, especifique la transparencia plana o interpolada configurando las propiedades FaceAlpha y EdgeAlpha en 'flat' o 'interp'.

  • Parches: especifique un valor de transparencia distinto para todas las caras y bordes. También puede especificar si utilizar transparencias planas o interpoladas en todas las caras o bordes. Especifique primero los valores de transparencia configurando la propiedad FaceVertexAlphaData en un vector de columna con una longitud igual al número de caras (para transparencia plana) o el número de vértices en el parche (para transparencia interpolada). Después, especifique la transparencia plana o interpolada configurando las propiedades FaceAlpha y EdgeAlpha en 'flat' o 'interp'.

Utilice la propiedad AlphaDataMapping para controlar la forma en la que los objetos interpretan los valores de datos alfa. Para obtener más información, consulte las descripciones de las propiedades.

Modificar la transparencia de las gráficas de superficie

Cree una superficie y modifique la transparencia en función del gradiente de los datos de z. Utilice una transparencia plana en todas las caras de la superficie estableciendo FaceAlpha en 'flat'. Configure el color de la superficie en azul para mostrar cómo cambia la transparencia.

[x,y] = meshgrid(-2:.2:2);
z = x.*exp(-x.^2-y.^2);
a = gradient(z);

surf(x,y,z,'AlphaData',a,...
    'FaceAlpha','flat',...
    'FaceColor','blue')

Modificar la transparencia de objetos de parche

Represente una línea mediante la función patch. Establezca la última entrada y en NaN de forma que la función patch cree una línea en vez de un polígono cerrado.

Defina un valor de transparencia por vértice estableciendo la propiedad FaceVertexAlphaData en un vector de columna. Interprete los valores como valores de transparencia (0 es invisible, 1 es opaco) estableciendo la propiedad AlphaDataMapping en 'none'. Interpole la transparencia entre los vértices estableciendo la propiedad EdgeAlpha en 'interp'.

x = linspace(1,10,10);
y = sin(x);
y(end) = NaN; 

figure
alpha_values = linspace(0,1,10)'; 
patch(x,y,'red','EdgeColor','red',...
    'FaceVertexAlphaData',alpha_values,'AlphaDataMapping','none',...
    'EdgeAlpha','interp')

Consulte también

| | | | | | | |