Почему на карте Heat Seaborn отображаются белые строки и столбцы? - PullRequest
0 голосов
/ 01 октября 2019

Я пытаюсь выполнить упражнение на Kaggle: Ссылка на упражнение

Я провел некоторую обработку данных, а затем попытался построить тепловую карту, используя библиотеку seaborn, но по какой-то причине тепловая картапоказывает белый ряд и столбец. вот изображение тепловой карты. Это не ясно видно здесь, но вы можете увидеть белую строку и столбец для функции Год enter image description here

, вот код, который я использую. на самом деле все просто, поэтому я не думаю, что это происходит из-за ошибки в коде:

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, я разместил ссылку выше, но я сделал несколькообрабатывая так, чтобы теперь у меня были эти функции:

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

Я только разбил объект даты на отдельный год, месяц и день, а затем составил график тепловой карты. может быть, у кого-то была эта проблема раньше, и он может сказать мне, почему это происходит, я также нахожу похожий вопрос в R, но я не понял ответы, потому что у меня нет знаний о R. Я надеюсь, что у кого-то естьответ на это в Python.

1 Ответ

0 голосов
/ 01 октября 2019

так что, похоже, он показывает этот белый цвет, потому что я не установил цвет для плохих значений. Благодаря 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
...