MathGroup Archive 2014

[Date Index] [Thread Index] [Author Index]

Search the Archive

Re: TreePlot

  • To: mathgroup at smc.vnet.net
  • Subject: [mg132395] Re: TreePlot
  • From: Marco Gabiccini <m.gabiccini at ing.unipi.it>
  • Date: Sat, 8 Mar 2014 02:43:11 -0500 (EST)
  • Delivered-to: l-mathgroup@mail-archive0.wolfram.com
  • Delivered-to: l-mathgroup@wolfram.com
  • Delivered-to: mathgroup-outx@smc.vnet.net
  • Delivered-to: mathgroup-newsendx@smc.vnet.net
  • References: <20140306070605.915576A18@smc.vnet.net> <CAEtRDSe1sq=fLwbX0iiXjzE+H3tiTNCxzJ7FGvDDK+9TzkbzqA@mail.gmail.com>

Dear Bob,

thanks for the precious help.

Indeed an elegant and practical solution.

Best,

Marco

Il 06/03/2014 15:19, Bob Hanlon ha scritto:
>
> Add a frame to the edge labels.
>
>
> treeStructure = {{0, 1}, {1, 2}, {1, 3}, {3, 5},
>    {0, 4}, {4, 6}, {4, 7}, {4, 8}};
>
>
> jointList = Map[Last, treeStructure];
>
>
> edgeList = Thread[
>    (DirectedEdge @@@ treeStructure) ->
>     (Framed[#, FrameStyle -> White,
>         Background -> White] & /@
>       jointList)];
>
>
> g = TreeGraph[
>   DirectedEdge @@@ treeStructure,
>   VertexLabels -> Placed["Name", After],
>   GraphRoot -> 0,
>   EdgeLabels -> edgeList,
>   VertexSize -> 0.15,
>   EdgeStyle -> Thick,
>   EdgeLabelStyle -> Directive[Red, Bold, 16],
>   VertexLabelStyle -> Directive[Black, 14],
>   ImagePadding -> 20,
>   GraphHighlight -> {0},
>   GraphHighlightStyle -> "DehighlightGray"]
>
>
> To grow from the bottom, suppress the display of g (use ;) and use its 
> VertexCoordinates to draw an inverted graph.
>
>
> g2 = TreeGraph[
>   DirectedEdge @@@ treeStructure,
>   VertexLabels -> Placed["Name", After],
>   GraphRoot -> 0, EdgeLabels -> edgeList,
>   VertexSize -> 0.15, EdgeStyle -> Thick,
>   EdgeLabelStyle -> Directive[Red, Bold, 16],
>   VertexLabelStyle -> Directive[Black, 14],
>   ImagePadding -> 20,
>   GraphHighlight -> {0},
>   GraphHighlightStyle -> "DehighlightGray",
>   VertexCoordinates -> ((VertexCoordinates /.
>        AbsoluteOptions[g, VertexCoordinates]) /.
>      {x_, y_} -> {x, -y})]
>
>
>
> Bob Hanlon
>
>
>
>
> On Thu, Mar 6, 2014 at 2:06 AM, Marco Gabiccini 
> <m.gabiccini at ing.unipi.it <mailto:m.gabiccini at ing.unipi.it>> wrote:
>
>     Dear all,
>
>     I am trying to obtain a nice visualization of generic trees in
>     Mathematica for mechanism analysis.
>
>     I have been able to use something like:
>
>     treeStructure = {{0, 1}, {1, 2}, {1, 3}, {3, 5}, {0, 4}, {4, 6}, {4,
>          7}, {4, 8}};
>
>     jointList = Map[Last, treeStructure];
>
>     edgeList = MapThread[Rule,
>         {Map[DirectedEdge @@ # &, treeStructure],
>          jointList}
>         ];
>
>     g = TreeGraph[
>        Map[DirectedEdge @@ # &, treeStructure],
>        VertexLabels -> "Name",
>        GraphRoot -> 0,
>        EdgeLabels -> edgeList,
>        VertexSize -> 0.15, EdgeStyle -> Thick,
>        EdgeLabelStyle -> Directive[Red, Bold, 16],
>        VertexLabelStyle -> Directive[Black, 14]]
>
>     and all is fine. However, I was trying to exploit the apparently more
>     freedom given by the command TreePlot, e.g. to create a small white
>     frame behind the names of the edges so that the text does not collide
>     with the edge itself, have the tree grow from the bottom up, etc.,
>      but
>     I am facing the problem that it seems that TreePlot overrides the
>     names
>     given to the nodes (e.g, my root node must be zero and it is
>     automatically renamed 1) and there seems to be no smart function like
>     that is TreeGraph VertexLabels->"Name".
>
>     Any hint about how the get, at the same time, the best of both
>     commands?
>     Or, at least, have a better visualization using TreeGraph?
>
>     Thanks,
>
>     Marco
>
>



  • References:
    • TreePlot
      • From: Marco Gabiccini <m.gabiccini@ing.unipi.it>
  • Prev by Date: Re: Cannot move text with drawing tools
  • Next by Date: matrix manipulation
  • Previous by thread: Re: TreePlot
  • Next by thread: WildCats version 0.70 released