Как я устанавливаю перемещение на один цвет (никакой градиент) в моем matlab-графике?

Мой набор данных состоит из трех векторов (x, y и z). Я вывожу эти значения на печать как точки в 3-м графике с plot3 (x, y, z), который прекрасен. Я также хочу показать плоскость в том же графике. Для получения данных этого графика, я использую линейную регрессию на X и Y для получения нового z.

Это - то, как это смотрит:

alt text
(источник: bildr.no)

Я хочу, чтобы перемещение было заполнено только одним цветом (скажите голубой или серый), и установите непрозрачность, для создания этого прозрачным. Как я могу сделать это?

17
задан Glorfindel 13 July 2019 в 16:09
поделиться

3 ответа

Самый легкий способ создать поверхность, которая имеет всего 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').

26
ответ дан 30 November 2019 в 12:01
поделиться

Мне не ясно, что Вы хотите сделать. Когда Вы говорите один цвет для перемещения, значение точно одного цвета, или Вы подразумеваете желание оттенков серого?

Вот некоторый код, который сделает множество вещей, можно выбрать который строки использовать:

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)
4
ответ дан 30 November 2019 в 12:01
поделиться

matlabDoug имеет то, в чем Вы нуждаетесь, я думаю. Свойство cdata содержит цветные данные, которые относились к карте цветов оно. При установке его на массив тот же размер, поскольку поверхностные данные, с каждым элементом в том массиве, имеющем то же значение, сделают поверхность одним цветом. С картой цвета по умолчанию устанавливая все в cdata для обнуления сделает поверхностный синий, и установка всего к 1 сделает поверхностный красный. Затем можно играть с альфой для создания этого прозрачным.

1
ответ дан 30 November 2019 в 12:01
поделиться
Другие вопросы по тегам:

Похожие вопросы: