Many issues with rendering

All of the png files can be viewed all at once here.

In many of these, the order I edged the characters is NOT maintained.
Is there a way to specify that lines go to shapes go to the middle of the top of the shape?

In Adora.png (dot file):
The line to Gattila's box is not centered on top.
The line to (brothers) is going into the left side instead of the top.
The four record boxes are not level on their tops.

In Baldwin.png (dot file):
Willow should be on the outside, but I can't get her there.

In Gorbage.png (dot file):
The line to Goldy is going into the right side instead of the top.
Orienta comes after Ghina and Geddy.

In Jenny.png (dot file):
The line to Jerry is going into the right side instead of the top.
The line to Jone is barely visible.
Both lines should go to the center of the tops of the boxes.

In Nimby.png (dot file):
X(A/N)TH should be on the outside.

In Okra.png (dot file):
The line to Opuntia is going into the right side instead of the top.
Mazipana should be after Fern.
Most downward lines are not going into the center of the tops of the boxes.

In Xavier.png (dot file):
Zyzzyva should be on the other side of Xeth.

In Sofias_play.png (dot file):
The cluster for Characters should be under Actors.
The lines to Out Take and Justin Case are going into the right of the ellipsis instead of the tops.

(After I get the clusters where I want them, is it possible to have splines="ortho" for the clusters, but splines="spline" or whatever the default is so I can connect Miss Take with Raven and Miss Inform with Robin with the line label being "played".)

In Adept.png (dot file):
The line to Neysa is going into the right side instead of the top.
The line to Chip is going into the left side instead of the top.

In Incarnations.png (dot file):
The green dot on the line connecting Kerena and unnamed should be in the center of the horizontal bar.
The green dot on the line connecting Cedric's and Pacian's fathers should be as close to the center of the horizontal bar as possible without touching the dotted line coming from unnamed.
The third Gawain (near the bottom) should be directly under the first Gawain II.
Is it possible to make the line going to Luna from her parents to go after the box for Mym?

The difficulties you are

The difficulties you are encountering involve a combination of trying to
overconstrain dot, not using available attributes, and known limitations
of certain dot features.

Basically, dot works best if the order in which nodes and edges appear
reflect the intended meaning of the graph as reflected in its structure. If
you try to rationally order them some other way (e.g., a list of male nodes,
followed by a list of female nodes as in Adora.dot), you've omitted a lot
of clues for dot to use in its layout.

There are two main things to keep in mind. First, by default, edges imply
visual ordering. An edge A -> B means B will occur below A. If A and B are
forced to be on the same rank, it means B will occur to the right of A.
Second, nodes and edges are processed in the order they appear in the input.

There are ways around this. The system provides many features to explicitly
introduce the constraints you want. But these go only so far, and sometimes,
due to limitations or bugs, it can be very difficult to get things to work
right.

More concretely, here are comments on the first seven graphs. I believe
the comments should get you started. If you encounter further issues or
problems, let me know.

Adora:
> The line to Gattila's box is not centered on top.
> The line to (brothers) is going into the left side instead of the top.
  In the rendering, the line to Gattila is centered on the top, and the line
to (brothers) is on the top.
> The four record boxes are not level on their tops.
Dot places nodes on a rank so their centers are on a horizontal line. To get
what you want, you need to pad the smaller nodes to be the same size as the
tallest node. HTML-like labels allow you to do this,

Baldwin:
> Willow should be on the outside, but I can't get her there.
Your file contains Sean -- mWiASe -- Willow, which tells dot to put Willow
to the right of Sean, so this needs to be flipped. Unfortunately, this isn't
enough, partly because dot really doesn't do well with flat edge crossings.
From the drawing, you can see that dot really wants Jim1 to come first,
so input is restructured so that the nodes of the top rank appear from
left to right.

Gorbage:
> The line to Goldy is going into the right side instead of the top.
This is a limitation of the implementation of orthogonal routing. It does not
yet support ports, so you could specify you want the edge to end at the top.
As it stands, it picks any shortest path. You can hack this with a dummy node
and an invisible edge.
> Orienta comes after Ghina and Geddy.
Use the ordering attribute

Nimby:
  X(A/N)TH looks like it is on the outside.

Okra:
> The line to Opuntia is going into the right side instead of the top.
Same fix as in Gorbage
> Mazipana should be after Fern.
Use ordering
> Most downward lines are not going into the center of the tops of the boxes.
Same fix as with Opuntia above, but I didn't make the change.

Xavier:
> Zyzzyva should be on the other side of Xeth.
Use the ordering attribute

 

Recent comments