Mathematica 9 is now available
Services & Resources / Wolfram Forums
-----
 /
MathGroup Archive
2007
*January
*February
*March
*April
*May
*June
*July
*August
*September
*October
*Archive Index
*Ask about this page
*Print this page
*Give us feedback
*Sign up for the Wolfram Insider

MathGroup Archive 2007

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

Search the Archive

Centering LayerGraphPlot output

  • To: mathgroup at smc.vnet.net
  • Subject: [mg77956] Centering LayerGraphPlot output
  • From: Kate Brenneman <k.a.brenneman at gmail.com>
  • Date: Wed, 20 Jun 2007 05:39:44 -0400 (EDT)

Dear Mathematica savants,

I am trying to figure out how to center the output of
LayeredGraphPlot[] about the y-axis.  Right now the following code
places the vertices in the correct vertical order but doesn't present
a horizontally symmetric graph.  You'll notice that there are bits
commented out that didn't work, though I thought they might.  I would
also like to know how to control the vertical spacing between the
layers as graphs much larger than the sample provided are difficult to
read.

Thanks,
Kate Brenneman
NCSU

DisplayPosetGraph[IPPL_] := Module[{p, e, max, id, w0, w0y},
  (* DisplayPosetGraph receives an Involution Poset Plot List \
generated by MakePlotList and uses LayeredGraphPlot to illustrate it \
graphically *)

  (* find the number of generators *)
  p = Position[IPPL, _Integer];
  e = Extract[IPPL, p];
  max = Max[e];

  id = IPPL[[1, 1, 1]];
  w0 = IPPL[[-1, 1, 2]];
  w0y = GraphUtilities`GraphDistance[IPPL, id, w0];

  Return[
   LayeredGraphPlot[
    IPPL,
    Bottom,
    VertexLabeling -> True,
    DirectedEdges -> False,
    MultiedgeStyle -> 1/6.,
    EdgeRenderingFunction -> (
      {Darker[Hue[0.75*((#3[[1]] - 1)/max)]],
        If[#3[[2]], {Line[#1]}, {Dashed, Line[#1]}],
        Text[
         If[#3[[2]], OverBar[Subscript["S", #3[[1]]]],
          Subscript["S", #3[[1]]]],
         GraphUtilities`LineScaledCoordinate[#1, .4],
         Background -> White]} &)
    (*VertexCoordinateRules->{id->{0,0},w0->{0,w0y}}*)]

   ]
  ]

Sample input:

g={{{1, 2, 3} -> {-1, 2, 3}, {1, False}}, {{1, 2, 3} -> {2, 1, 3},
{2,
   False}}, {{1, 2, 3} -> {1, 3, 2}, {3,
   False}}, {{-1, 2, 3} -> {1, -2, 3}, {2,
   True}}, {{-1, 2, 3} -> {-1, 3, 2}, {3,
   False}}, {{1, 3, 2} -> {-1, 3, 2}, {1,
   False}}, {{2, 1, 3} -> {-2, -1, 3}, {1,
   True}}, {{2, 1, 3} -> {3, 2, 1}, {3,
   True}}, {{1, 3, 2} -> {3, 2, 1}, {2,
   True}}, {{1, -2, 3} -> {-1, -2, 3}, {1,
   False}}, {{-2, -1, 3} -> {-1, -2, 3}, {2,
   False}}, {{1, -2, 3} -> {1, 2, -3}, {3,
   True}}, {{-1, 3, 2} -> {3, -2, 1}, {2,
   True}}, {{-2, -1, 3} -> {-3, 2, -1}, {3,
   True}}, {{3, 2, 1} -> {-3, 2, -1}, {1,
   True}}, {{-1, -2, 3} -> {-1, 2, -3}, {3,
   True}}, {{1, 2, -3} -> {-1, 2, -3}, {1,
   False}}, {{1, 2, -3} -> {2, 1, -3}, {2,
   False}}, {{3, -2, 1} -> {2, 1, -3}, {3,
   True}}, {{3, -2, 1} -> {-3, -2, -1}, {1,
   True}}, {{-3, 2, -1} -> {1, -3, -2}, {2,
   True}}, {{-1, 2, -3} -> {1, -2, -3}, {2,
   True}}, {{1, -3, -2} -> {1, -2, -3}, {3,
   False}}, {{2, 1, -3} -> {-2, -1, -3}, {1,
   True}}, {{-3, -2, -1} -> {-2, -1, -3}, {3,
   True}}, {{-3, -2, -1} -> {-1, -3, -2}, {2,
   True}}, {{1, -3, -2} -> {-1, -3, -2}, {1,
   False}}, {{1, -2, -3} -> {-1, -2, -3}, {1,
   False}}, {{-2, -1, -3} -> {-1, -2, -3}, {2,
   False}}, {{-1, -3, -2} -> {-1, -2, -3}, {3, False}}};

DisplayPosetGraph[g]



  • Prev by Date: Re: Re: MatrixPlot: frame ticks starting with 0?
  • Next by Date: Re: Three problems with V. 6.0
  • Previous by thread: Re: Reproducible crash in version 6
  • Next by thread: Rules for $Assumptions changed in v6.0 ???