Displaying figures with differents colors for matlab

i have matlab code that generate 3D points , so i want to plot each 3D points with different color
my last code for generat all points are
figure(i),plot3(mx,my,mz,'b*');
and this one plot all peaks but with same color witch are blue and the image below show u how my code work

回答 (1 件)

Adam
Adam 2014 年 5 月 29 日

0 投票

Hi Malstheet, try to convert the vertors mx , my and mz into the diagonal matrices. Also, erase the letter b defining the blue color. The color of your points should be different, however, it will repeat in a cycle...
Try this:
plot3(diag(mx),diag(my),diag(mz),'*');
Hope it helps you. Adam

4 件のコメント

Adam
Adam 2014 年 5 月 29 日
Also, see the function scatter3 , which enables changing color of each point by some rule (e.g. according to the norm...) -- CData property.
Try this:
scatter3(mx,my,mz,'*','CData',sqrt(mx.^2+my.^2+mz.^2));
Malstheet
Malstheet 2014 年 5 月 29 日
it work perfect but the color still the same didnt change
Malstheet
Malstheet 2014 年 5 月 29 日
CData ??? must be the colors
Adam
Adam 2014 年 5 月 30 日
It should have different colors. Could you specify your definition of mx , my and mz vectors?
Try this:
mx = linspace(1,100,100);
my = linspace(1,100,100);
mz = linspace(1,100,100);
scatter3(mx,my,mz,'*','CData',sqrt(mx.^2+my.^2+mz.^2));
CData could be defined in couple ways. For (1xN) vectors (or transpose) the CData vector would have same size (1xN). Each value defines the color of corresponding point. E.g. Point mx(1),my(1),mz(1) will have color CData(1) - according to the value related to the range.

サインインしてコメントする。

カテゴリ

タグ

タグが未入力です。

質問済み:

2014 年 5 月 29 日

コメント済み:

2014 年 5 月 30 日

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by