Search code examples
pythonmatplotlibshap

Shap - The color bar is not displayed in the summary plot


When displaying summary_plot, the color bar does not show.

shap.summary_plot(shap_values, X_train)

Summary plot

I have tried changing plot_size. When the plot is higher the color bar appears, but it is very small - doesn't look like it should.

shap.summary_plot(shap_values, X_train, plot_size=0.7)

Higher summary plot

Here is an example of a proper looking color bar. Proper summary plot

Does anyone know if this can be fixed somehow?

How to reproduce:

import pandas as pd
import shap
import sklearn
from sklearn.ensemble import RandomForestRegressor

# a classic housing price dataset
X,y = shap.datasets.boston()

# a simple linear model
model = RandomForestRegressor(max_depth=6, random_state=0, n_estimators=10)
model.fit(X, y)
shap_values = shap.TreeExplainer(model).shap_values(X)
shap.summary_plot(shap_values, X)

In this case, the color bar is displayed, but it is very small. I have chosen such an example to make it easy to retrieve the data.


Solution

  • I had the same problem as you did, and I found that the solution was to downgrade matplotlib to 3.4.3.. It appears SHAP isn't optimized for matplotlib 3.5.1 yet.