python - from - Hacer mapa de calor de pandas DataFrame
pandas series to dataframe (4)
Útil sns.heatmap
api está here . Verifique los parámetros, hay un buen número de ellos. Ejemplo:
import seaborn as sns
%matplotlib inline
idx= [''aaa'',''bbb'',''ccc'',''ddd'',''eee'']
cols = list(''ABCD'')
df = DataFrame(abs(np.random.randn(5,4)), index=idx, columns=cols)
# _r reverses the normal order of the color map ''RdYlGn''
sns.heatmap(df, cmap=''RdYlGn_r'', linewidths=0.5, annot=True)
Tengo un marco de datos generado a partir del paquete Pandas de Python. ¿Cómo puedo generar heatmap usando DataFrame del paquete pandas?
import numpy as np
from pandas import *
Index= [''aaa'',''bbb'',''ccc'',''ddd'',''eee'']
Cols = [''A'', ''B'', ''C'',''D'']
df = DataFrame(abs(np.random.randn(5, 4)), index= Index, columns=Cols)
>>> df
A B C D
aaa 2.431645 1.248688 0.267648 0.613826
bbb 0.809296 1.671020 1.564420 0.347662
ccc 1.501939 1.126518 0.702019 1.596048
ddd 0.137160 0.147368 1.504663 0.202822
eee 0.134540 3.708104 0.309097 1.641090
>>>
Para las personas que miran esto hoy, recomendaría el heatmap()
Seaborn heatmap()
como se documenta here .
El ejemplo anterior se haría de la siguiente manera:
import numpy as np
from pandas import DataFrame
import seaborn as sns
%matplotlib inline
Index= [''aaa'', ''bbb'', ''ccc'', ''ddd'', ''eee'']
Cols = [''A'', ''B'', ''C'', ''D'']
df = DataFrame(abs(np.random.randn(5, 4)), index=Index, columns=Cols)
sns.heatmap(df, annot=True)
Donde %matplotlib
es una función mágica de IPython para los que no están familiarizados.
Quieres matplotlib.pcolor
:
import numpy as np
from pandas import DataFrame
import matplotlib.pyplot as plt
Index= [''aaa'', ''bbb'', ''ccc'', ''ddd'', ''eee'']
Cols = [''A'', ''B'', ''C'', ''D'']
df = DataFrame(abs(np.random.randn(5, 4)), index=Index, columns=Cols)
plt.pcolor(df)
plt.yticks(np.arange(0.5, len(df.index), 1), df.index)
plt.xticks(np.arange(0.5, len(df.columns), 1), df.columns)
plt.show()
Si no necesita un diagrama por ejemplo, y simplemente está interesado en agregar color para representar los valores en un formato de tabla, puede usar el método style.background_gradient()
del marco de datos de pandas. Este método colorea la tabla HTML que se muestra al ver los marcos de datos pandas, por ejemplo, en el JupyterLab Notebook y el resultado es similar al uso del "formato condicional" en el software de hoja de cálculo:
import numpy as np
import pandas as pd
index= [''aaa'', ''bbb'', ''ccc'', ''ddd'', ''eee'']
cols = [''A'', ''B'', ''C'', ''D'']
df = pd.DataFrame(abs(np.random.randn(5, 4)), index=index, columns=cols)
df.style.background_gradient(cmap=''summer'')
Hay algunos detalles más en esta respuesta relacionada , y la sección de diseño de la documentación de pandas pasa por muchas de las opciones en profundidad.