exponenta event banner

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

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

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

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

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

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

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

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

Совет

Объекты Patch, surface, spatter и image поддерживают использование альфа-данных для изменения прозрачности объекта. Дополнительные сведения см. в разделе Изменение прозрачности с помощью альфа-данных.

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

Объединение двух полупрозрачных диаграмм областей путем установки 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.

Изменение прозрачности с помощью альфа-данных

Объекты Patch, surface и image имеют несколько дополнительных свойств для изменения прозрачности объекта.

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

  • Таблица и примитивные поверхности (Chart and primitive surfaces) - укажите различные значения прозрачности для каждой грани и кромки. Кроме того, можно указать, следует ли использовать плоскую или интерполированную прозрачность для каждой грани или кромки. Сначала задайте значения прозрачности, установив AlphaData для массива того же размера, что и ZData собственность. Затем задайте плоскую или интерполированную прозрачность, задав значение FaceAlpha и EdgeAlpha свойства для одного из них 'flat' или 'interp'.

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

  • Графики разброса (Spatter plots) - укажите другое значение прозрачности для каждого маркера. Сначала задайте значения прозрачности, установив 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 функция. Установить последнюю запись 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.

См. также

| | | | | | | |