Некоторые метки данных водопадного графика SHAP, которые я получаю, равны нулю. Однако это не так, и сам сюжет обходит их стороной. Поэтому мне нужно увеличить десятичные знаки меток.
Для этой цели приведена следующая часть кода:
plt.figure()
fig, ax = plt.subplots()
fig.tight_layout(pad=7.0)
shap.plots.waterfall(val[26], show=False)
for text in ax.texts:
text.set_color('k')
value = float(text.get_text())
text.set_text(f"{value:.{4}f}")
fig, ax = plt.gcf(), plt.gca()
ax.grid(axis='y', color='grey', linestyle=':', linewidth=1, alpha=0.5)
for tick in ax.get_xticklabels():
tick.set_fontname('Times New Roman')
tick.set_fontsize(14)
tick.set_color('k')
for tick in ax.get_yticklabels():
tick.set_fontname('Times New Roman')
tick.set_fontsize(14)
tick.set_color('k')
ax.spines["top"].set_visible(True)
ax.spines["top"].set_color('k')
ax.spines["left"].set_visible(True)
ax.spines["left"].set_color('k')
ax.spines["right"].set_visible(True)
ax.spines["right"].set_color('k')
plt.show()
До сих пор я пробовал приведенный ниже код, но он возвращал ошибку значения. Это связано с тем, что, несмотря на то, что метки являются числами, они представляют собой строки, и это на них не влияет.
for text in ax.texts:
value = float(text.get_text())
text.set_text(f"{value:.{4}f}")
Я также пробовал увеличить количество десятичных знаков для всей среды Python, но это не помогло по той же причине, что и выше. Я использовал метод ниже:
from decimal import getcontext
getcontext().prec = 4
Подробнее здесь: https://stackoverflow.com/questions/793 ... rfall-plot
Увеличить десятичные разряды меток данных на каскадном графике SHAP ⇐ Python
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение
-
-
Проблема с видимостью точек на графике Beeswarm, созданном с использованием значений SHAP
Anonymous » » в форуме Python - 0 Ответы
- 32 Просмотры
-
Последнее сообщение Anonymous
-