Добавьте прозрачность к графическим объектам

Что такое прозрачность?

Прозрачность графического объекта определяет степень, в которой вы можете видеть через него. Добавьте прозрачность к графическим объектам, чтобы настроить внешний вид графиков или показать подробности об объекте, который в противном случае скрыт. В этой таблице показано различие между непрозрачной и полупрозрачной поверхностями.

Непрозрачный объектПолупрозрачный объект

Графические объекты, поддерживающие прозрачность

Управляйте прозрачностью объекта, используя alpha function или путем установки свойств объекта, связанных с прозрачностью. Некоторые графические объекты поддерживают использование другого значения прозрачности для граней в зависимости от ребер объекта.

В этой таблице перечислены объекты, поддерживающие прозрачность, и соответствующие свойства. Установите скалярное значение свойств в области значений [0,1]. Значение 0 означает полностью прозрачное, значение 1 означает полностью непрозрачное, а значения от 0 до 1 являются полупрозрачными.

Графические объекты, поддерживающие прозрачностьСвойства для равномерной прозрачности
ОбластьFaceAlpha
EdgeAlpha
Линейная серияFaceAlpha
EdgeAlpha
Серия рассеянияMarkerFaceAlpha
MarkerEdgeAlpha
Серия BubbleChartMarkerFaceAlpha
MarkerEdgeAlpha
ГистограммаFaceAlpha
Histogram2FaceAlpha
Поверхность графикаFaceAlpha
EdgeAlpha
Примитивная поверхностьFaceAlpha
EdgeAlpha
Закрашенная фигураFaceAlpha
EdgeAlpha
ИзображениеAlphaData

Совет

Закрашенная фигура, поверхность, рассеяние и объекты изображения поддержки используя альфа- данные для изменения прозрачности по объекту. Для получения дополнительной информации см. Раздел «Изменение прозрачности при помощи Alpha Данных».

Создание Area Chart с прозрачностью

Объедините два полупрозрачных графиков областей путем установки FaceAlpha и EdgeAlpha свойства для каждого объекта области.

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

Figure contains an axes. The axes contains 2 objects of type area.

Создайте столбчатую диаграмму с прозрачностью

Создайте полупрозрачную столбчатую диаграмму путем установки FaceAlpha свойство объекта линейного ряда со значением от 0 до 1. Отобразите линии сетки.

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

Figure contains an axes. The axes contains an object of type bar.

Создайте диаграмму поля точек с прозрачностью

Создайте график поля точек с помощью синих, полупрозрачных маркеров. Затем добавьте второй график поля точек, используя красные, полупрозрачные маркеры. Задайте цвет маркера путем установки MarkerFaceColor и MarkerEdgeColor свойства объекта серии рассеяния. Задайте прозрачность путем установки MarkerFaceAlpha и MarkerEdgeAlpha свойства до скалярного значения от 0 до 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

Figure contains an axes. The axes contains 2 objects of type scatter.

Изменение прозрачности с использованием альфа- Данных

Закрашенная фигура, поверхность и объекты изображения имеют несколько дополнительных свойств для изменения прозрачности по объекту.

  • Изображения - задайте другое значение прозрачности для каждого элемента изображения. Задайте значения путем установки AlphaData свойство для массива того же размера, что и CData свойство.

  • График и примитивные поверхности - задайте разное значение прозрачности для каждой грани и ребра. Кроме того, можно задать, использовать ли плоскую или интерполированную прозрачность на каждой грани или ребре. Во-первых, задайте значения прозрачности путем установки AlphaData свойство для массива того же размера, что и ZData свойство. Затем задайте плоскую или интерполированную прозрачность путем установки FaceAlpha и EdgeAlpha свойства для любого из 'flat' или 'interp'.

  • Закрашенные фигуры - задайте другое значение прозрачности для каждой грани и ребра. Кроме того, можно задать, использовать ли плоскую или интерполированную прозрачность на каждой грани или ребре. Во-первых, задайте значения прозрачности путем установки FaceVertexAlphaData свойство для вектора-столбца с длиной, равной либо количеству граней (для плоской прозрачности), либо количеству вершин в закрашенную фигуру (для интерполированной прозрачности). Затем задайте плоскую или интерполированную прозрачность путем установки FaceAlpha и EdgeAlpha свойства для любого из 'flat' или 'interp'.

  • Графики поля точек - задайте другое значение прозрачности для каждого маркера. Во-первых, задайте значения прозрачности путем установки AlphaData свойство для массива того же размера, что и XData свойство. Затем задайте плоскую прозрачность путем установки либо MarkerFaceAlpha или MarkerEdgeAlpha свойство к 'flat'.

Используйте AlphaDataMapping свойство, чтобы контролировать, как объекты интерпретируют значения альфа- данных. Для получения дополнительной информации см. описание свойств.

Изменение прозрачности поверхностной диаграммы

Создайте поверхность и измените прозрачность на основе градиента z данные. Используйте плоскую прозрачность на каждой поверхности путем установки FaceAlpha на 'flat'. Установите синий цвет поверхности, чтобы показать, как изменяется прозрачность.

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

Figure contains an axes. The axes contains an object of type surface.

Изменение прозрачности объекта Patch

Постройте график линии с помощью patch функция. Установите последнюю запись y на NaN так что patch создает линию вместо замкнутого многоугольника.

Задайте одно значение прозрачности на вершину путем установки FaceVertexAlphaData свойство для вектора-столбца. Интерпретируйте значения как значения прозрачности (0 невидимо, 1 непрозрачно) путем установки AlphaDataMapping свойство к 'none'. Интерполируйте прозрачность между вершинами путем установки EdgeAlpha свойство к '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')

Figure contains an axes. The axes contains an object of type patch.

См. также

| | | | | | | |