how to plot a color-coded matrix
17 vues (au cours des 30 derniers jours)
Afficher commentaires plus anciens
Hello
I have a matrix of data including 3 column,for example:
a=[1 0 3;1 1 4;1 2 4;1 3 5]
x=a(:,1);y=a(:,2);z=a(:,3);
1) in my real data, z is the value associated with (x,y). so I would like to have a 2D chart with x and y value being color-coded based on z value. like all the points in the chart with 1<z<2 are red and 2<z>3 are blue and etc. is there a way to do that?
2) to get what i want, I used the below command for a sample matrix with different z value but the chart is just giving me all points in blue color. what am i missing? what is the best syntax for what I want?
figure
scatter3(x(0<z<=2),y(0<z<=2),z(0<z<=2),'g.')
hold on
scatter3(x(2<z<=4),y(2<z<=4),z(2<z<=4),'k.')
hold on
scatter3(x(4<z<=6),y(4<z<=6),z(4<z<=6),'r.')
Thank you !
0 commentaires
Réponse acceptée
Star Strider
le 19 Juin 2018
Try this:
a=[1 0 3;1 1 4;1 2 4;1 3 5]
x=a(:,1);
y=a(:,2);
z=a(:,3);
L1 = (z > 1) & (z <= 3); % Logical Subscripts For Condittion #1
L2 = (z > 3) & (z <= 5); % Logical Subscripts For Condittion #2
figure(1)
scatter3(x(L1), y(L1), z(L1), 'rp')
hold on
scatter3(x(L2), y(L2), z(L2), 'bp')
hold off
grid on
Change the conditions as necessary for your data.
3 commentaires
Star Strider
le 19 Juin 2018
As always, my pleasure!
Using legend may be more practical:
legend('0 - 100', '100 - 200')
If you want to use colorbar, try this (after your scatter3 call):
colormap([1 0 0; 0 0 1])
colorbar('Ticks', [0 0.5 1], 'TickLabels',[0 100 200])
This worked when I tested it (in R2018a). You may have to experiment with it.
Plus de réponses (0)
Voir également
Catégories
En savoir plus sur Colormaps dans Help Center et File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!