Take the 2-minute tour ×
Mathematica Stack Exchange is a question and answer site for users of Mathematica. It's 100% free, no registration required.

Can someone provide an example of a Combinatorica-based graph which uses ShowGraph and Graph and takes in an explicitly defined list of edges (not some auto-generated graph). I have not been able to find any documentation which describes the expected input format.

share|improve this question
2  
You can find the input format for the edges and vertices for Combinatorica`Graph under More Information on the page Combinatorica/ref/Graph in the documentation center –  Heike May 6 '12 at 22:26
1  
Just in case someone wants Heike's link on the web: reference.wolfram.com/mathematica/Combinatorica/ref/Graph.html –  belisarius May 7 '12 at 1:20

1 Answer 1

up vote 5 down vote accepted

Two examples:

   Needs["Combinatorica`"]
   GraphicsRow[
    {ShowGraph[ 
       g1 = Graph[{{{1, 2}}, {{2, 3}}, {{3, 1}}}, {{{1, 1}}, {{2, 1}}, {{3, 3}}}], 
        VertexNumber -> True], 
     ShowGraph[
      g2 = Graph[
            {{{1, 2}, EdgeLabel -> "lbl1"}, {{2, 3}, EdgeColor -> Green}, 
             {{3, 1}, EdgeLabel -> "(3,1)", EdgeDirection -> True, EdgeLabel -> True, 
                EdgeLabelPosition -> UpperLeft}}, 
           {{{1, 1}, VertexLabel -> True, VertexLabelColor -> Blue, 
   VertexLabelPosition -> LowerRight}, 
             {{2, 1}, VertexNumber -> True, VertexNumberColor -> Orange}, 
             {{3, 3}}}]
    ]}]

to get

enter image description here

EDIT: Before loading Combinatorica you can transform the data using:

   toCombGrphData[gr_] :=  gr // 
       Sequence @@ {EdgeList[#] /. UndirectedEdge[x__] :> {List[x]}, 
                    List /@ (AbsoluteOptions[#, VertexCoordinates][[2]])} &

Update: For Version 9, we need to change the part specification above from [[2]] to [[1,2]] (thanks: @sam84).

Example:

  combgrpg = toCombGrphData[CompleteGraph[3]]

gives the edge list and vertex coordinates needed as input for Combinatorica ``Graph`:

  (*  Sequence[{{{1, 2}}, {{1, 3}}, {{2, 3}}}, {{{0.866025, -0.5}}, {{-0.866025, -0.5}}, {{-2.44929*10^-16, 1.}}}] *)

Then,

  Needs["Combinatorica`"]

  ShowGraph[Graph[combgrph]]

gives

enter image description here

share|improve this answer
    
I tried your example in Mathematica 9, but I obtain the following error: Part::partw: Part 2 of {VertexCoordinates->{{-0.866025,-0.5},{0.866025,-0.5},{1.83697*10^-16,1.}}} does not exist. >> –  sam84 Apr 18 at 17:19
    
@sam84, thank you. I will check if i can fix it. –  kguler Apr 18 at 17:47
    
I fixed it. This function works: toCombGrphData[gr_] := gr // Sequence @@ {EdgeList[#] /. UndirectedEdge[x__] :> {List[x]}, List /@ (AbsoluteOptions[#, VertexCoordinates][[1, 2]])} & –  sam84 Apr 19 at 9:32
    
It is possible to extend the function toCombGrphData so to inclue also edge weights? Thanks –  sam84 Apr 19 at 9:33
    
@sam84, can't recall the Combinatorica syntax for using edge weights. If you have simple example handy, perhaps you can post a new question. (Thanks for the fix; I will update the post with the fix.) –  kguler Apr 19 at 14:46

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.