Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > comp.soft-sys.math.mathematica > #16613
| From | Marco Gabiccini <m.gabiccini@ing.unipi.it> |
|---|---|
| Newsgroups | comp.soft-sys.math.mathematica |
| Subject | Re: TreePlot |
| Date | 2014-03-08 07:43 +0000 |
| Message-ID | <lfehn0$5lf$1@smc.vnet.net> (permalink) |
| References | <20140306070605.915576A18@smc.vnet.net> <CAEtRDSe1sq=fLwbX0iiXjzE+H3tiTNCxzJ7FGvDDK+9TzkbzqA@mail.gmail.com> |
| Organization | Time-Warner Telecom |
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@ing.unipi.it <mailto:m.gabiccini@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
>
>
Back to comp.soft-sys.math.mathematica | Previous | Next | Find similar
Re: TreePlot Marco Gabiccini <m.gabiccini@ing.unipi.it> - 2014-03-08 07:43 +0000
csiph-web