Re: A newbee to Mathematica

• To: mathgroup at smc.vnet.net
• Subject: [mg97521] Re: A newbee to Mathematica
• From: Dana DeLouis <dana01 at me.com>
• Date: Sat, 14 Mar 2009 18:13:47 -0500 (EST)

``` >> showing the weights of each edge as is provided in

Hi.  I may be wrong, but I believe you have a "Directed" graph.
Meaning that from 1-7 the weight is 2, but from 7-1 the weight is 1.
I'm am not sure how you want to label this when you have different
weights in different directions.  Again, I may be wrong.

am // MatrixForm

{1,0,1,2,0,1,2}
{0,0,0,0,1,1,1}
{1,0,0,1,1,1,1}
{0,3,1,4,1,0,1}
{0,1,1,1,0,1,0}
{1,1,1,0,1,0,0}
{1,1,5,1,0,0,0}

When you do..

GraphPlot3D[g, VertexLabeling -> True];

The graph does not show a link between 2 & 4.
Although there is a '0 between 2 & 4, there is a '3 between 4 & 2.

This shows the link between 2 & 4. (no double call to
"FromAdjacencyMatrix".  I think  help is a little unclear in 7.0)

GraphPlot3D[am, VertexLabeling -> True]

Just throwing out some additional options:

g = FromAdjacencyMatrix[am /. 0 -> \[Infinity], EdgeWeight];

g = SetEdgeLabels[g, GetEdgeWeights[g]];

ops = {VertexColor -> Red, VertexLabelColor -> Blue,
VertexLabel -> True, EdgeLabel -> True, ImageSize -> 600};

ShowGraph[g, Sequence @@ ops]

Note that because this is undirected, the label from 3-7 is "1", but
the label from 7-3 of "5" was discarded.  I'm not sure how you want to
really label these edges.

If you want, remove self-loops...

ShowGraph[MakeSimple[g], Sequence @@ ops]

One can see the one-way relationships between 1&4, and 2&4 with
something like this...

g = FromAdjacencyMatrix[am /. 0 -> \[Infinity], EdgeWeight,
Type -> Directed];
ShowGraph[g, VertexLabel -> True]

= = = = =
HTH :>)
Dana DeLouis

Nishant wrote:
> Hi I have just started using mathematica,and therefore have a very
silly question that needs an answer.
> I am trying to run this:
> Needs["GraphUtilities`"]
> Needs["Combinatorica`"]
> am = {{1, 0, 1, 2, 0, 1, 2}, {0, 0, 0, 0, 1, 1, 1}, {1, 0, 0, 1, 1,
1,
>      1}, {0, 3, 1, 4, 1, 0, 1}, {0, 1, 1, 1, 0, 1, 0}, {1, 1, 1, 0,
1,
>      0, 0}, {1, 1, 5, 1, 0, 0, 0}};
>
> MatrixForm[am]
> g[FromAdjacencyMatrix[am, EdgeWeight], VertexLabeling -> True,
>  EdgeLabeling -> True]
> GraphPlot3D[g]
> I am getting this error message:
> GraphPlot3D::grph:Graph:<11,7,Undirected> is not a valid graph.
>
> BASICALLY what I want to do is to generate a 3d graph from a given
adjacency matrix,with the elements of the matrix showing the weights
of each edge as is provided in FromAdjacencyMatrix[g,Edgeweight]
>
> Thank you for helping me out

```

• Prev by Date: Re: Comparing Corresponding Columns of Two Matrices
• Next by Date: Re: Function as return value, how to document it (::usage)
• Previous by thread: Re: A newbee to Mathematica