Setting EdgeColor in 2015B+ for graph.m

4 visualizaciones (últimos 30 días)
Matlab2010
Matlab2010 el 11 de Mzo. de 2016
Comentada: Steven Lord el 11 de Mzo. de 2016
In 2015B graph.m is introduced graph.m.
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?

Respuesta aceptada

Mike Garrity
Mike Garrity el 11 de Mzo. de 2016
Editada: Mike Garrity el 11 de Mzo. de 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.
The colormap functions return arrays of this type, so we can do things like this:
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 comentario
Steven Lord
Steven Lord el 11 de Mzo. de 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)

Iniciar sesión para comentar.

Más respuestas (0)

Categorías

Más información sobre Graph and Network Algorithms en Help Center y File Exchange.

Etiquetas

Community Treasure Hunt

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

Start Hunting!

Translated by