Setting EdgeColor in 2015B+ for graph.m
2 visualizzazioni (ultimi 30 giorni)
Mostra commenti meno recenti
Matlab2010
il 11 Mar 2016
Commentato: Steven Lord
il 11 Mar 2016
A = ones(4) - diag([1 1 1 1]);
G = graph(A);
plot(G);
h=get(gca, 'Children');
%set(h, 'EdgeColor', 'red'); % I could do this but it sets all the edges red.
%set(h, 'EdgeColor', new_cols(i,1)); %I would like to be able to set each edge indivdualy.
How do I set individual edge colors?
0 Commenti
Risposta accettata
Mike Garrity
il 11 Mar 2016
Modificato: Mike Garrity
il 11 Mar 2016
It wants an array with 3 columns, and one row for each edge. The columns are the red, green, and blue components of the color for the edge which corresponds to the row.
A = ones(4) - diag([1 1 1 1]);
G = graph(A);
h = plot(G);
h.EdgeColor = lines(G.numedges);
But you could create the array some other way.
1 Commento
Steven Lord
il 11 Mar 2016
In addition to what Mike said, if you want to make one particular edge or a few edges stand out rather than changing the color of every edge, take a look at the HIGHLIGHT function.
% Create the complete graph on 4 nodes (no self loops)
A = ones(4) - eye(4);
G = graph(A);
% Plot it with red edges of width 2
h = plot(G, 'EdgeColor', 'r', 'LineWidth', 2);
% Highlight the edge (2, 3) in black and make it width 5
highlight(h, 2, 3, 'EdgeColor', 'k', 'LineWidth', 5)
Più risposte (0)
Vedere anche
Categorie
Scopri di più su Graph and Network Algorithms in Help Center e File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!