Primera y última fila cortadas por la mitad del gráfico del mapa de calor

Resuelto Flops asked hace 5 años • 10 respuestas

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()

Y obtenga este resultado (todavía no puedo insertar imágenes) 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?

Flops avatar Jul 09 '19 04:07 Flops
Aceptado

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)
ImportanceOfBeingErnest avatar Jul 08 '2019 21:07 ImportanceOfBeingErnest

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)
Nikhil Pakki avatar Sep 30 '2019 10:09 Nikhil Pakki