为什么 seaborn Heatmap 显示白色的行和列?

why does seaborn Heatmap shows white rows and columns?

我正在尝试在 Kaggle 上做一个练习:Exercice link

我进行了一些数据处理,然后尝试使用 seaborn 库绘制热图,但由于某种原因,热图显示了白色的行和列。这是热图的图像。此处看不清楚,但您可以看到年份特征的白色行和列

这是我正在使用的代码。这实际上很简单,这就是为什么我不认为这是因为代码错误而发生的原因:

dataset = pd.read_csv('/content/Consumo_cerveja.csv')
# rename the columns to english

dataset.columns = ['Date', 'MediumTemperature', 'MinimumTemperature', 'MaximumTemperature', 'Precipitation', 'Weekend', 'BeerConsumption' ]
dataset['parsed_date'] = pd.to_datetime(dataset['Date'], format= '%Y-%m-%d')
dataset.drop('Date', inplace=True, axis=1)
dataset = dataset[0:365]   # resize the dataset to get rid of null rows
datetime_column = dataset.pop('parsed_date')
dataset['Day'] = datetime_column.dt.day
dataset['Month'] = datetime_column.dt.month
dataset['Year'] = datetime_column.dt.year


cor_mat = dataset.corr()   # get the correlation matrix
h_map = sns.heatmap(data=cor_mat, annot=True, cmap='RdYlGn')

原始数据集可以在Kaggle上找到,我在上面贴了一个link,但我做了一些处理,所以现在我有那些特征:

 Index(['MediumTemperature', 'MinimumTemperature', 'MaximumTemperature',
       'Precipitation', 'Weekend', 'BeerConsumption', 'Day', 'Month', 'Year'],
      dtype='object')

我只将日期特征拆分为单独的年、月和日,然后绘制了热图。也许以前有人遇到过这个问题,可以告诉我为什么会这样,我也找到了类似的 question 在 R 中,但我不明白答案,因为我不了解 R。我希望有人在 Python 中对此有答案。

所以它似乎显示了白色,因为我没有为错误的值设置任何颜色。 感谢 ImportanceOfBeingErnest 我更改了代码并给出了颜色值,因此如果值不正确,该案例的颜色设置将出现在照片上。 在绘制热图之前,我必须添加此代码来设置颜色:

color = plt.get_cmap('RdYlGn')   # default color
color.set_bad('lightblue')    # if the value is bad the color would be lightblue instead of white
h_map = sns.heatmap(data=cor_mat, annot=True, cmap=color)   # now plot the heatmap