#python #seaborn #heatmap
#python #seaborn #тепловая карта
Вопрос:
Я пытаюсь создать тепловую карту, которая отлично работает, если есть много категориальных переменных, но выглядит не очень хорошо, когда есть две-три точки данных, как показано на втором изображении. Я ищу способ автоматической настройки на основе точек данных.
вот функция
def bivariate(col1,col2,Title,cbar_size):
temp2=modifiedloan.groupby([col1,col2,'loan_status']).id.agg('count').to_frame('count').reset_index()
temp3=temp2.pivot_table(index=(col1,col2), columns='loan_status', values='count').fillna(0)
temp3['default%']=(temp3[0]/(temp3[0] temp3[1]))
temp3=temp3.reset_index()
temp4=temp3.pivot_table(index=col1, columns=col2, values='default%').fillna(0)
temp5=temp3.pivot_table(index=col1, columns=col2, values=[0]).fillna(0)
f, (ax1) = plt.subplots(nrows=1, ncols=1, figsize=(12,6))
cmap = sns.cm.rocket_r
sns.heatmap(temp4,linewidths=1, ax=ax1,annot=False, fmt='g',cmap=cmap,cbar=True,cbar_kws={"shrink": cbar_size})
sns.heatmap(temp5, annot=True, annot_kws={'va':'top'}, fmt="", cbar=False,ax=ax1)
sns.heatmap(temp4, annot=True, fmt=".1%",annot_kws={'va':'bottom'}, cbar=False,cmap=cmap)
plt.ylim(b, t) # update the ylim(bottom, top) values
ax1.set_title(Title)
plt.tight_layout()
Ответ №1:
Я понял, что проблема связана с установленной версией seaborn. Те же функции хорошо работали на компьютере одного из моих коллег.