forest
is not really designed for this kind of graph but it can still do quite well with a little patience. The best way to specify the tree is not, however, semantically expressive: the relations specified in drawing the tree do not represent the relations illustrated by the diagram.
This uses an experimental package, justtrees
. There is a copy around somewhere but ask me for version 0.03 if you want to try it. justtrees
makes it very easier to specify the generational labels shown on the right in the OP's drawing, but which are omitted in the other answers presented.
I've used a pink colour for female (sigh), blue for male (sigh again), and purple for 'secondary wives' (scream). An equals sign is used to specify the marriage relation.
\PassOptionsToPackage{rgb,x11names,svgnames,dvipsnames}{xcolor}
\documentclass[tikz,border=5pt,multi]{standalone}
\usepackage{justtrees}% version 0.03
\usetikzlibrary{shadows}
\begin{document}
\forestset{
reln/.style={
content={$=$},
really no edge,
inner xsep=0pt,
},
really no edge/.style={
edge={draw=none}
},
}
\begin{justtree}
{% tree preamble goes here
person/.style={draw=#1, inner color=#1!10, outer color=#1!15, text=#1, thick, rounded corners, drop shadow},
fe/.style={person=WildStrawberry},
fe2/.style={person=WildStrawberry!50!DeepSkyBlue4},
ma/.style={person=DeepSkyBlue4},
just format/.style={font=\itshape},
for tree={
edge path={
\noexpand\path [draw, \forestoption{edge}] (!u.parent anchor) -- +(0,-5pt) -| (.child anchor)\forestoption{edge label};
},
edge={thick},
}
}
[female, fe, right just={first generation}]
[, reln
[female, fe, really no edge, right just={second generation}]
[, reln
[male, ma, calign with current, right just={third generation}]
]
[male, ma]
[male, ma, really no edge]
[, reln, calign with current]
]
[male, ma]
[, reln
[female, fe]
[, phantom, calign with current]
[male, ma]
]
[female, fe2]
[,phantom
[, reln
[male, ma]
[male, ma]
[male, ma]
]
]
[male, ma
[female, fe]
]
\end{justtree}
\end{document}
