highlight Nodecolor for a graph using a color map (JET)

7 Ansichten (letzte 30 Tage)
Sha
Sha am 30 Sep. 2020
Kommentiert: Sha am 1 Okt. 2020
Hi,
I have plotted a graph with n nodes.
Each node has an "attribute" or a value from -1 to 1 stored in a vector K.
I would like to color the nodes using these attributes so for example if node 1 has attribute value "-1" then with the "JET" colormap on Matlab it would appear in Blue.
Is there a way to achieve this ?
I tried the following but clearly it doesn't work (returns error, it's wrong):
jetcustom=jet(n);
r1=K(1,:); %list of attributes
colors = interp1(linspace(-1, 1, n), jetcustom, r1.');
figure()
a=graph(A);
p=plot(a,'Layout','force');
for i=1:n
highlight(p,i , 'NodeColor', colors(i));
end

Akzeptierte Antwort

Christine Tobler
Christine Tobler am 30 Sep. 2020
Since colors is a n-by-3 array, use colors(i, :) to access the complete row that represents the color for node i. You can also use
p=plot(a,'Layout','force','NodeColor',colors)
instead of the for-loop with highlight, or you could try to have MATLAB's colormap work in the background without explicitly setting the colors:
p=plot(a,'Layout','force','NodeCData',r1);
colorbar
colormap jet

Weitere Antworten (0)

Kategorien

Mehr zu Colormaps finden Sie in Help Center und File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by