1
$\begingroup$

In preparing a talk I discovered that some of my graphs did not render well, when displayed on a projector because the default lines in graphs are too narrow. Although I was able to fix this for edge thickness, but using a second VertexStyle-> Directive[Thickness[0.00001], Black] does not work no matter how small I specify the thickness, I can't seem to put a thick black border around the edges of the vertices.

I also want to control the orientation of the graph so that it "grows" from bottom to top. I have done this with two Rotate functions, one for the labels and one for the graph. However, this seems awkward to me. Is there a built in option to do this so that the orientation of labels works appropriately?

My code is as follows:

rotateLabel[lab_] := Rotate[lab, 180 Degree]; tree1 = 
Rotate[TreeGraph[{1 <-> 2, 2 <-> 3, 2 <-> 5, 3 <-> 4, 3 <-> 6}, 
EdgeStyle -> Directive[Thickness[0.02], Black], 
VertexLabelStyle -> Directive[Black, Bold, 25], 
VertexStyle -> {1 -> Yellow, 2 -> Yellow, 3 -> Red, 4 -> Red, 
 5 -> Yellow, 6 -> Red}, VertexSize -> Large, 
VertexLabels -> {1 -> Placed["c", Center, rotateLabel], 
 2 -> Placed["a", Center, rotateLabel], 
 3 -> Placed["d", Center, rotateLabel], 
 4 -> Placed["f", Center, rotateLabel], 
 5 -> Placed["b", Center, rotateLabel], 
 6 -> Placed["e", Center, rotateLabel]}], 180 Degree]; tree2 = 
 Rotate[TreeGraph[{1 <-> 2, 2 <-> 3, 2 <-> 5, 3 <-> 4, 3 <-> 6}, 
 EdgeStyle -> Directive[Thickness[0.02], Black], 
 VertexLabelStyle -> Directive[Black, Bold, 25], 
VertexStyle -> {1 -> Yellow, 2 -> Yellow, 3 -> Red, 4 -> Yellow, 
 5 -> Yellow, 6 -> Red}, VertexSize -> Large, 
VertexLabels -> {1 -> Placed["c", Center, rotateLabel], 
 2 -> Placed["a", Center, rotateLabel], 
 3 -> Placed["d", Center, rotateLabel], 
 4 -> Placed["f", Center, rotateLabel], 
 5 -> Placed["b", Center, rotateLabel], 
 6 -> Placed["e", Center, rotateLabel]}], 180 Degree];
 GraphicsGrid[{{tree1}, {tree2}}, ImageSize -> {500, 500}]

Thanks in advance to those more clever than

$\endgroup$

closed as off-topic by Feyre, m_goldberg, Quantum_Oli, MarcoB, Yves Klett Dec 4 '16 at 8:09

This question appears to be off-topic. The users who voted to close gave this specific reason:

  • "This question arises due to a simple mistake such as a trivial syntax error, incorrect capitalization, spelling mistake, or other typographical error and is unlikely to help any future visitors, or else it is easily found in the documentation." – Feyre, m_goldberg, Quantum_Oli, MarcoB, Yves Klett
If this question can be reworded to fit the rules in the help center, please edit the question.

  • $\begingroup$ To control the thickness of edges of the vertices use EdgeForm. So for exampe: VertexStyle->{1 -> {EdgeForm[Thick], Yellow}, ...}. $\endgroup$ – Quantum_Oli Dec 3 '16 at 13:19
  • $\begingroup$ That works but doesn't quite give me the control I was looking for. However, your suggestion did lead to the control I was looking for by substituting in VertexStyle the following works beautifully: VertexStyle -> {EdgeForm[Directive[Thickness[0.02], Black]], {1 -> Yellow, 2 -> Yellow, 3 -> Red, 4 -> Yellow, 5 -> Yellow, 6 -> Red} Just what I was looking for thanks. $\endgroup$ – Stuart Poss Dec 3 '16 at 13:30
  • $\begingroup$ @StuartPoss you might consider using Directive[AbsoluteThickness[1],Black] to have a line thickness of 1 print point regardless of the size of your image $\endgroup$ – grbl Dec 3 '16 at 14:23
  • $\begingroup$ That makes sense. Thank you for the tip. $\endgroup$ – Stuart Poss Dec 4 '16 at 7:59