Primera y última fila cortadas por la mitad del gráfico del mapa de calor
Al trazar mapas de calor con seaborn (y matrices de correlación con matplotlib), la primera y la última fila se cortan a la mitad. Esto también sucede cuando ejecuto este ejemplo de código mínimo que encontré en línea.
import pandas as pd
import seaborn as sns
import matplotlib.pyplot as plt
data = pd.read_csv('https://raw.githubusercontent.com/resbaz/r-novice-gapminder-files/master/data/gapminder-FiveYearData.csv')
plt.figure(figsize=(10,5))
sns.heatmap(data.corr())
plt.show()
Las etiquetas en el eje y están en el lugar correcto, pero las filas no están completamente allí.
Hace unos días, funcionó según lo previsto. Desde entonces instalé texlive-xetex así que lo eliminé nuevamente pero no resolvió mi problema.
¿Alguna idea de lo que podría faltarme?
Desafortunadamente, matplotlib 3.1.1 rompió los mapas de calor marinos ; y en general ejes invertidos con ticks fijos.
Esto está solucionado en la versión de desarrollo actual; usted puede por lo tanto
- volver a matplotlib 3.1.0
- use matplotlib 3.1.2 o superior
- establecer los límites del mapa de calor manualmente (
ax.set_ylim(bottom, top) # set the ylim to bottom, top
)
Es un error en la regresión de matplotlib entre 3.1.0 y 3.1.1. Puede corregir esto de la siguiente manera:
import seaborn as sns
df_corr = someDataFrame.corr()
ax = sns.heatmap(df_corr, annot=True) #notation: "annot" not "annote"
bottom, top = ax.get_ylim()
ax.set_ylim(bottom + 0.5, top - 0.5)