2016-05-14 2 views
1

Мне нужно построить график, в котором каждая точка (x, y, z) имеет цвет, назначенный на основе его значения. Как я могу это сделать в Matlab? Я пробовал: scatter3 (x, y, z, c) , но у меня были трудности с цветом.Как назначить цвет точкам в графе

Рассмотрите этот пример: (x_i, y_i, z_i) имеет значение v_i. Я хочу, чтобы точка с максимальным значением была красной, а точка с минимальным значением была синей.

+0

Возможный дубликат [это] (http://stackoverflow.com/questions/34603566/how-can-i-conditionally-colour-points-on-a-scatter-plot-in-matlab/34603715 # 34603715) вопрос. Проверьте это, и если это не ответит вам, отправьте свой код, чтобы мы могли увидеть, что происходит. –

ответ

1

Используйте этот код. Я предполагаю, что вам нужен цвет на основе z. Вот почему есть второй z в рассеянии3. Вы можете заменить его на другую матрицу, на основе которой будет отображаться цвет.

s=50; %size of marker 
scatter3(x, y, z, s ,z,'filled'); 
colormap(jet); 
colorbar; 

Если вам нужно изменение цвета сине-бело-красное. Затем используйте этот код.

s=50; %size of marker 
scatter3(x, y, z, s ,z,'filled'); 
m = size(get(gcf,'colormap'),1)/2; 
steps = (0:m-1)'/max(m-1,1); 
cm_red_blue = [ steps steps ones(m,1);ones(m,1) flipud(steps) flipud(steps) ]; 
colormap(cm_red_blue); 
colorbar; 
1

вы должны использовать его как:

scatter3(x, y, z, s, c) 

где s является размер маркеров.

Если вы используете его, как и вы, Matlab считает, что цвет является значением размера и, скорее всего, возвращает ошибку.

Смежные вопросы