Как настроить серфинг на один цвет (без градиента) на моем графике Matlab?
Мой набор данных состоит из трех векторов (x, y и z). Я отображаю эти значения в виде точек на трехмерном графике с plot3 (x, y, z), что нормально. Я также хочу показать самолет на том же участке. Чтобы получить данные этого графика, я использую линейную регрессию по x и y, чтобы получить новый z.
Вот как это выглядит:
(источник: bildr.no)
Я хочу, чтобы прибой был заполнен только одним цветом (скажем, голубым или серым) и установил прозрачность, чтобы сделать его прозрачным. Как я могу это сделать?
Ответы
Ответ 1
Самый простой способ создать поверхность с одним цветом и заданным значением прозрачности - установить свойства FaceColor и FaceAlpha для поверхностного объекта:
hSurface = surf(...your arguments to create the surface object...);
set(hSurface,'FaceColor',[1 0 0],'FaceAlpha',0.5);
В этом примере цвет поверхности будет красным, а прозрачность - 0,5. Вы также можете установить свойства края (с помощью "EdgeColor" и "EdgeAlpha" ).
Ответ 2
Мне непонятно, что вы хотите сделать. Когда вы говорите один цвет для прибоя, вы имеете в виду ровно один цвет, или вы имеете в виду, что хотите оттенки серого?
Вот какой код, который будет делать множество вещей, вы можете выбрать, какие строки использовать:
x = rand(1,20);
y = rand(1,20);
z = rand(1,20);
[X,Y] = meshgrid(linspace(0,1,10),linspace(0,1,10));
Z = rand(10)*0.1;
clf
plot3(x,y,z,'.');
hold on
h = surf(X,Y,Z)
hold off
%% This will change the color
colormap(copper)
%% This will remove colordata
set(h, 'cdata',zeros(10))
%% This will make transparent
alpha(0.5)
Ответ 3
Завершая ответ от gnovice, может потребоваться дополнительный ингредиент в set(hsurface...)
(Matlab R2010b 64):
hSurface = surf(...your arguments to create the surface object...);
set(hSurface, 'FaceColor',[1 0 0], 'FaceAlpha',0.5, 'EdgeAlpha', 0);
чтобы сделать невидимыми ребра "точка-точка" построенной поверхности
Ответ 4
@matlabDoug имеет то, что вам нужно, я думаю. Свойство cdata
содержит данные о цвете, которые получают цветовую карту, применяемую к ней. Установка его в массив того же размера, что и ваши поверхностные данные, причем каждый элемент в этом массиве имеет одинаковое значение, сделает вашу поверхность одним цветом. С цветной картой по умолчанию установка всего в cdata на ноль сделает вашу поверхность синей, а установка всего на 1 сделает поверхность красной. Затем вы можете играть с альфой, чтобы сделать ее прозрачной.