Simple LaTeX Tikz Hierarchical Model
A simple hierarchical model is the most popular orgnaization chart type.
Latex Code
edge from parent fork down is used to construct horizontal grouping, while
grow via three points is used to construct vertical grouping.
child[Missing]{} can also be used to adjust child layout.
xshift and
yshift are used to arrange the
node by adjusting the level distance and sibling distance.
edge from parent path is used to control the connecting path.
\documentclass[border=10pt,tikz]{standalone}
\usetikzlibrary{trees}
\begin{document}
\begin{tikzpicture}[
level distance=15mm,
level 1/.style={sibling distance=7cm},
level 2/.style={sibling distance=2cm},
every node/.style={draw=black,thin, align=center,minimum height = 1cm},
root/.style={fill=black!10,},
type/.style={fill=cyan!10,},
literal/.style={fill=green!10},
misc/.style={fill=red!10},
collection/.style={fill=blue!10,xshift=1cm},
constant/.style={fill=lightgray!10,xshift=0.5cm},
other/.style={fill=teal!10},
literalx10/.style={literal,xshift=1cm},
otherx5/.style={other,xshift=0.5cm},
dirtree/.style={grow via three points={one child at (0,-1.5) and two children at (0,-1.5) and (0,-3)},
edge from parent path={(\tikzparentnode.#1) |- (\tikzchildnode.west)},},
]
\node[root]{Literals}
[edge from parent fork down]
child{node[type]{Scalar\\Literals}
[edge from parent fork down]
child{node[literal]{String\\Literals}
{[dirtree=220]child{node[otherx5]{Unicode\\Literials}}}}
child{node[literal]{Bytes\\Literals}
{[dirtree=220]child{node[otherx5]{Bytearray}}}}
child{node[misc,xshift=1.5mm]{Numeric\\Literals}
{[dirtree=220,text width=2cm,]
child{node[literalx10]{Integer}
{[dirtree=208,text width=,]child{node[other]{Long\\Integer}}}}
child[missing]{}
child{node[literalx10]{Float Point\\Number}}
child{node[literalx10]{Imaginary\\Number}}}}
child{node[misc,xshift=1cm]{Boolean\\Literals}
{[dirtree=220]
child{node[constant]{True}}
child{node[constant]{False}}}}
child{node[misc,xshift=1cm]{Special\\Literals}
{[dirtree=220]child{node[constant]{None}}}}
}
child{node[type]{Literal\\Collection}
{[dirtree=220,text width=2cm,]
child{node[collection]{List\\Literals}}
child{node[collection]{Tuple\\Literals}}
child{node[collection]{Dictionary\\Literals}}
child{node[collection]{Set\\Literals}}}
};
\end{tikzpicture}
\end{document}
Latex Code Output
Source and Reference