Как настроить графики Matplotlib, используя gcf () или gca ()? - PullRequest
0 голосов
/ 16 октября 2019

Я использую пакет под названием shap, который имеет встроенную функцию печати. Однако я хочу настроить некоторые вещи, такие как метки, условные обозначения, цвет, размер и т. Д.

, очевидно, из-за того, что разработчик может использовать plt.gcf ().

Я называю график таким образом, это даст объект фигуры, но я не уверен, как его использовать:

fig = shap.summary_plot(shap_values_DT, data_train,color=plt.get_cmap("tab10"), show=False)
ax = plt.subplot()

enter image description here

ОБНОВЛЕНИЕ / РЕШЕНИЕ Наконец я все настроил так, как хотел, выполнив следующее:

shap.summary_plot(shap_values_DT, data_train, color=plt.get_cmap("tab10"), show=False)
fig = plt.gcf()
fig.set_figheight(12)
fig.set_figwidth(14)
ax = plt.gca()
ax.set_xlabel(r'durchschnittliche SHAP Werte $\vert\sigma_{ij}\vert$', fontsize=16)
ax.set_ylabel('Inputparameter', fontsize=16)
ylabels = string_latexer([tick.get_text() for tick in ax.get_yticklabels()])
ax.set_yticklabels(ylabels)
leg = ax.legend()
for l in leg.get_texts(): l.set_text(l.get_text().replace('Class', 'Klasse'))
plt.show()

enter image description here

1 Ответ

1 голос
/ 16 октября 2019

Я еще не использовал shap, но, возможно, вы можете изменить его следующим образом:

shap.summary_plot(shap_values_DT, data_train,color=plt.get_cmap("tab10"), show=False)
plt.title('my custom title')
plt.savefig('test.png')

Обновление Из официальной документации я прочитал

import xgboost
import shap

# load JS visualization code to notebook
shap.initjs()

# train XGBoost model
X,y = shap.datasets.boston()
model = xgboost.train({"learning_rate": 0.01}, xgboost.DMatrix(X, label=y), 100)

# explain the model's predictions using SHAP values
# (same syntax works for LightGBM, CatBoost, and scikit-learn models)
explainer = shap.TreeExplainer(model)
shap_values = explainer.shap_values(X)

# visualize the first prediction's explanation (use matplotlib=True to avoid Javascript)
shap.force_plot(explainer.expected_value, shap_values[0,:], X.iloc[0,:])

Я быстро попробовал пример, и он, кажется, работает, если вы добавите опцию matplotlib=True. Тем не менее, не все функции, кажется, поддерживают это ...

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...