2

I want to acheive something of this sort, (without the bounding boxes):

Binomial tree diagram

Here, the first child has a straight line from the parent, and the following ones are diagonal.

What tikzset settings will allow that, or how would I go about acheiving this, and where can I learn more about it for the future?

currently I have:

\tikzset{every tree node/.style={minimum width=2em,draw,circle},
         blank/.style={draw=none},
         edge from parent/.style=
         {draw, edge from parent path={(\tikzparentnode) -- (\tikzchildnode)}},
         level distance=1.5cm}

which I got from a post on tex.sx without knowing too much about how it works.

3
  • 1
    If you're willing to use a different tree-package, you could take a look at forest. There is a similar example on page 6 of the manual. Apr 7, 2014 at 10:27
  • @TorbjørnT. Would be open to try.
    – NightRa
    Apr 7, 2014 at 10:32
  • @TorbjørnT. forest looks way better for my use case. Alot of thanks for mentioning it!
    – NightRa
    Apr 7, 2014 at 10:35

2 Answers 2

3

Using the forest package, you can define a style, which we will call here B, and then apply it to every tree:

\documentclass[a4paper]{article}
\usepackage{forest}

\forestset{
    B/.style={for tree={calign=last, circle,draw}}
}

\begin{document}
\begin{forest}
B
[9 
  [6
    [4
      [3]
    ]
    [2]
  ]
  [5
    [1]
  ]
  [7]
]
\end{forest}
\end{document}

Result:

Rendered binomal tree

1

Another alternative via tikz tree. Here an event style is defined for each node to have a circle shape.

enter image description here

Code

\documentclass[border=10pt]{standalone}
\usepackage{tikz}
\usetikzlibrary{calc,positioning}

\begin{document}

\begin{tikzpicture}
 [event/.style={circle,thick,draw,text width=0.6cm, text centered,font=\sffamily,anchor=north},
 edge from parent/.style={very thick,draw=black!70},
 ]
 \node (g) [event] {} 
       child {node[event,below= 1cm of g] (e3) {}}
       child {node[event,left=1cm of e3] (e2) {} 
                child {node[event, below=1cm of e2] (e21) {}    
                      }
             }           
       child {node[event,left=1cm of e2] (e1){}
                child {node[event,below= 1cm of e1] (e11) {} 
                      }
                child {node[event,left=1cm of e11]  (e12) {}
                          child[event]{node[event]{}}
                      }
             };  
\end{tikzpicture}

\end{document}

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .