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

조회 수: 7 (최근 30일)
Sha
Sha 2020년 9월 30일
댓글: Sha 2020년 10월 1일
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

채택된 답변

Christine Tobler
Christine Tobler 2020년 9월 30일
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

추가 답변 (0개)

카테고리

Help CenterFile Exchange에서 Colormaps에 대해 자세히 알아보기

Community Treasure Hunt

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

Start Hunting!

Translated by