Re: LayeredGraphPlot Question
- To: mathgroup at smc.vnet.net
- Subject: [mg105462] Re: LayeredGraphPlot Question
- From: dh <dh at metrohm.com>
- Date: Fri, 4 Dec 2009 04:30:17 -0500 (EST)
- References: <hf86ll$176$1@smc.vnet.net>
Michael Greene wrote: > I'm documenting a process flow and thought I'd try my hand at using M to > draw the flow diagram. After a bit of jiggling, I arrived at the following: > > sz = 550; t[tx_] = Text[Style[tx, FontSize -> 14]]; > LayeredGraphPlot[{ > {Applicant -> Student, t["Accepted & > Matriculates"]}, > {Student -> CMS Only, t["Graduates: > Declines > Alumni"]}, > {Student -> Alumni, t["Joins > Alumni > Assoc."]}, > {Student -> Inactive, t["Drops or > is Dismissed"]}, > {Applicant -> Inactive, t["Denied or Declines"]}, > {CMS Only -> Inactive, t["6 Month Transcript Access > Period Elapses"]}}, > VertexLabeling -> True, ImageSize -> {sz, sz}] > > I had to do some size jiggering to get labels to not step on each other, > hence the parametric sizing. The graph showed up in a meeting yesterday and > as par for a meeting, someone wanted some changes made to the graph. I > started to implement the changes when the colliding labels problem > resurfaced. > > I modified the above by rewording one label and adding another - to wit: > > sz = 550; t[tx_] = Text[Style[tx, FontSize -> 14]]; > LayeredGraphPlot[{ > {Applicant -> Student, t["Accepted & > Matriculates"]}, > {Student -> CMS Only, t["Graduates: > Declines > Alumni"]}, > {Student -> Alumni, t["Joins > Alumni > Assoc."]}, > {Student -> Inactive, t["Drops or > is Dismissed"]}, > {Applicant -> Inactive, t["Denied Admission"]}, > {Applicant -> Inactive, t["Doesn't Enroll"]}, > {CMS Only -> Inactive, t["6 Month Transcript Access > Period Elapses"]}}, > VertexLabeling -> True, ImageSize -> {sz, sz}] > > How can I modify the Denied Admission and Doesn't Enroll labels so they > don't collide without hard coding the label vertices? Is there some way to > nudge labels up/down or left/right without knowing where they are in the > graph? > > Thanks, > Michael > > Hi Michael, you may e.g. use the option MultiedgeStyle : sz = 550; t[tx_] = Text[Style[tx, FontSize -> 14]]; LayeredGraphPlot[{{Applicant -> Student, t["Accepted & Matriculates"]}, {Student -> CMS Only, t["Graduates: Declines Alumni"]}, {Student -> Alumni, t["Joins Alumni Assoc."]}, {Student -> Inactive, t["Drops or is Dismissed"]}, {Applicant -> Inactive, t["Denied Admission"]}, {Applicant -> Inactive, t["Doesn't Enroll"]}, {CMS Only -> Inactive, t["6 Month Transcript Access Period Elapses"]}}, VertexLabeling -> True, ImageSize -> {sz, sz}, MultiedgeStyle -> .45] Daniel