for example: How to plot bellow graph?
G=[1 4 0.2
2 4 0.2
3 4 0.2
4 1 0.7
4 2 0.7
4 3 0.7
4 5 0.5
4 8 0.6
5 4 0.4
5 6 0.8
5 7 0.8
6 5 0.3
7 5 0.3
8 4 0.5
8 9 0.9
8 10 0.9
8 11 0.9
9 8 0.4
10 8 0.4
11 8 0.5
11 12 0.6
12 11 0.2];
and How to plot an unweighted graph?

3 commentaires

Azzi Abdelmalek
Azzi Abdelmalek le 5 Avr 2016
What is unweighted graph?
Muhammad Usman Saleem
Muhammad Usman Saleem le 5 Avr 2016
also what is weighted graph? I know about weight mean not weighted graph
Walter Roberson
Walter Roberson le 6 Avr 2016
"A weight is a numerical value, assigned as a label to a vertex or edge of a graph. A weighted graph is a graph whose vertices or edges have been assigned weights; more specifically, a vertex-weighted graph has weights on its vertices and an edge-weighted graph has weights on its edges."
For example, if you were creating a pipeline network, then the weight might correspond to the carrying capacity of the pipe. If you were creating a road map, then the weight might correspond to the speed limit on the segment.

Connectez-vous pour commenter.

 Réponse acceptée

Mike Garrity
Mike Garrity le 5 Avr 2016

3 votes

Something like this?
G=[1 4 0.2; ...
2 4 0.2; ...
3 4 0.2; ...
4 1 0.7; ...
4 2 0.7; ...
4 3 0.7; ...
4 5 0.5; ...
4 8 0.6; ...
5 4 0.4; ...
5 6 0.8; ...
5 7 0.8; ...
6 5 0.3; ...
7 5 0.3; ...
8 4 0.5; ...
8 9 0.9; ...
8 10 0.9; ...
8 11 0.9; ...
9 8 0.4; ...
10 8 0.4; ...
11 8 0.5; ...
11 12 0.6; ...
12 11 0.2];
g = digraph(G(:,1),G(:,2),G(:,3));
plot(g,'EdgeLabel',g.Edges.Weight)
Requires R2015b. Do 'help digraph' to get more examples. You can do things like color the edges by the weights.

10 commentaires

Muhammad Usman Saleem
Muhammad Usman Saleem le 6 Avr 2016
I think g.Edges.Weight is bolding Edges of g? @Mike Garrity
Walter Roberson
Walter Roberson le 6 Avr 2016
I do not understand what you mean by "bolding" in that question?
Jack Ie
Jack Ie le 6 Avr 2016
It works in R2015b. how to do this in R2014b?
Mike Garrity
Mike Garrity le 6 Avr 2016
Sorry, graph was introduced in R2015b.
To "bold" all the edges (which I interpreted as making those with higher weight appear wider/thicker) use the LineWidth property.
plot(g,'EdgeLabel',g.Edges.Weight, 'LineWidth', 5*g.Edges.Weight)
If you want to change only the width of certain edges, say those with the highest weights, look instead at highlight.
% Plot the graph and increase the size of the arrows
% This will let us see the arrows more easily after highlighting
h = plot(g,'EdgeLabel',g.Edges.Weight, 'ArrowSize', 15);
% Locate the indices of the edges with the highest weights
edgesHighestWeight = find(g.Edges.Weight == max(g.Edges.Weight));
% Convert those indices into source and target nodes
[S, T] = findedge(g, edgesHighestWeight);
% Highlight the edges (S, T) where S and T are vectors of node indices
highlight(h, S, T, 'LineWidth', 5);
For this example only the three edges (8, 11), (8, 9), and (8, 10) should be highlighted. They're the only ones with weight 0.9.
sibabalo noludwwe
sibabalo noludwwe le 22 Août 2019
if I want my graph to be weighted on the vertices instead of weighting the edges what do I do?
Steven Lord
Steven Lord le 22 Août 2019
Change the MarkerSize property of the object returned by plot, either in the call to plot itself (like LineWidth in the first line of code in my message from April 6th 2016) or afterwards (for this you can use highlight like I did in the last line of code in my message, but specifying MarkerSize instead of LineWidth.)
Luara Antunes
Luara Antunes le 2 Mai 2022
How to plot a weighted graph when the vertex-weighted graph has weights on its vertices, but not in edge-weighted?
Steven Lord
Steven Lord le 2 Mai 2022
Add a property to the Nodes table as shown on this documentation page.
Luara Antunes
Luara Antunes le 18 Mai 2022
Thanks

Connectez-vous pour commenter.

Plus de réponses (1)

Walter Roberson
Walter Roberson le 6 Avr 2016

1 vote

3 commentaires

Muhammad Usman Saleem
Muhammad Usman Saleem le 7 Avr 2016
thanks for sharing!
Joel Sande
Joel Sande le 11 Avr 2016
Hi, How to include digraph folder in Matlab 2014a ? thanks
Joel Sande
Joel Sande le 11 Avr 2016
Modifié(e) : Joel Sande le 11 Avr 2016
I downloaded the folder digraph. I don t know how to use it in my code. I have the 2014a version.

Connectez-vous pour commenter.

Catégories

En savoir plus sur Graph and Network Algorithms dans Centre d'aide et File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by