---
title: "How to plot the decision trees from XGBoost classifier"
description: "How to plot the decision rules of XGBoost"
author: "Bartosz Mikulski"
author_bio: "Principal AI Engineer & MLOps Architect. I bridge the gap between \"it works in a notebook\" and \"it works for 200 million users.\""
author_url: https://mikulskibartosz.name
author_linkedin: https://www.linkedin.com/in/mikulskibartosz/
author_github: https://github.com/mikulskibartosz
canonical_url: https://mikulskibartosz.name/how-to-plot-the-decision-trees-from-xgboost-classifier
---

In this article, I am going to show you how to plot the decision trees generated by XGBoost models.
First, we have to install graphviz (both python library and executable files)

```python
!pip install graphviz
!apt-get install graphviz
```

When the graphviz library is installed, we can train an XGBoost model (in this example, I am going to train it using the Titanic dataset).

```python
from xgboost import XGBClassifier
from xgboost import plot_tree
#(...) other imports

#(...) loading the dataset and data preprocessing

model = XGBClassifier()
model.fit(X_train, y_train, verbose=True, eval_set=[(X_test, y_test)])
```

To display the trees, we have to use the plot_tree function provided by XGBoost.

It is important to change the size of the plot because the default one is not readable. The num_trees indicates the tree that should be drawn not the number of trees, so when I set the value to two, I get the second tree generated by XGBoost.

```
plot_tree(model, num_trees=1)
fig = plt.gcf()
fig.set_size_inches(30, 15)
```

![XGBoost tree](/images/2019-08-26-how-to-plot-the-decision-trees-from-xgboost-classifier/xgboost_tree.png)