Как создать простую пользовательскую карту тепла? - PullRequest
2 голосов
/ 15 апреля 2019

Я хочу создать Heatmap из панд DataFrame df.df имеет два столбца:

name  test
aa    False
bb    False
cc    True
dd    False

Карта тепла должна содержать name значения по оси X и test значения по оси Y.Итак, в основном должно быть 2 строки - False и True по оси Y.Когда значение test равно False, поле False помечается красным.Когда значение test равно True, квадрат True отмечен зеленым.

Это мой текущий код:

import pandas as pd
import seaborn as sns

Index= df["name"].values
Cols = [True, False]
r = pd.DataFrame(df, index=Index, columns=Cols)
sns.heatmap(r, annot=True)

Однако этот код не работает должным образом.Как я могу решить свою задачу?

1 Ответ

2 голосов
/ 15 апреля 2019

Вам нужно изменить форму DataFrame, чтобы построить ее так, как вы хотите.

Например:

import matplotlib.pyplot as plt

df_new = df.set_index('name')['test'].astype(str).str.get_dummies().T

print(df_new)
name   aa  bb  cc  dd
False   1   1   0   1
True    0   0   1   0

Тогда вы можете использовать seaborn.heatmap:

plt.figure(figsize=(8, 4))
sns.heatmap(df_new, cmap='RdYlGn')

enter image description here

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