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 Kommentare

Azzi Abdelmalek
Azzi Abdelmalek am 5 Apr. 2016
What is unweighted graph?
Muhammad Usman Saleem
Muhammad Usman Saleem am 5 Apr. 2016
also what is weighted graph? I know about weight mean not weighted graph
Walter Roberson
Walter Roberson am 6 Apr. 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.

Melden Sie sich an, um zu kommentieren.

 Akzeptierte Antwort

Mike Garrity
Mike Garrity am 5 Apr. 2016

3 Stimmen

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 Kommentare

Muhammad Usman Saleem
Muhammad Usman Saleem am 6 Apr. 2016
I think g.Edges.Weight is bolding Edges of g? @Mike Garrity
Walter Roberson
Walter Roberson am 6 Apr. 2016
I do not understand what you mean by "bolding" in that question?
Jack Ie
Jack Ie am 6 Apr. 2016
It works in R2015b. how to do this in R2014b?
Mike Garrity
Mike Garrity am 6 Apr. 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 am 22 Aug. 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 am 22 Aug. 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 am 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 am 2 Mai 2022
Add a property to the Nodes table as shown on this documentation page.
Luara Antunes
Luara Antunes am 18 Mai 2022
Thanks

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (1)

Walter Roberson
Walter Roberson am 6 Apr. 2016

1 Stimme

3 Kommentare

Muhammad Usman Saleem
Muhammad Usman Saleem am 7 Apr. 2016
thanks for sharing!
Joel Sande
Joel Sande am 11 Apr. 2016
Hi, How to include digraph folder in Matlab 2014a ? thanks
Joel Sande
Joel Sande am 11 Apr. 2016
Bearbeitet: Joel Sande am 11 Apr. 2016
I downloaded the folder digraph. I don t know how to use it in my code. I have the 2014a version.

Melden Sie sich an, um zu kommentieren.

Kategorien

Mehr zu Graph and Network Algorithms finden Sie in Hilfe-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