Ao plotar mapas de calor com animais do mar (e matrizes de correlação com matplotlib), a primeira e a última linha são cortadas pela metade. Isso também acontece quando executo este exemplo de código mínimo que encontrei online.
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()
Os rótulos no eixo y estão no local correto, mas as linhas não estão completamente lá.
Há alguns dias, funcionou como planejado. Desde então, instalei o texlive-xetex, então o removi novamente, mas não resolveu meu problema.
Alguma ideia do que eu poderia estar perdendo?
python
matplotlib
seaborn
Flops
fonte
fonte
Respostas:
Infelizmente, matplotlib 3.1.1 quebrou mapas de calor marítimos ; e em geral eixos invertidos com marcas fixas.
Isso foi corrigido na versão de desenvolvimento atual; você pode daqui
ax.set_ylim(bottom, top) # set the ylim to bottom, top
)fonte
ax = sns.heatmap(...)
, definaax.set_ylim(...)
como você precisa que seus limites sejam.ax.set_ylim(0 ,7)
. Usando apenas ax.set_ylim (7) deixou uma linha dividida pela metade.É um bug na regressão matplotlib entre 3.1.0 e 3.1.1. Você pode corrigir isso:
fonte
bottom
ser maior do quetop
?Corrigido usando o acima e definindo os limites do mapa de calor manualmente.
Primeiro
verificado os eixos atuais com
Corrigido com
fonte
Resolvi isso adicionando esta linha em meu código, com
matplotlib==3.1.1
:ax.set_ylim(sorted(ax.get_xlim(), reverse=True))
NB. A única razão pela qual isso funciona é porque o eixo x não foi alterado, então use por sua própria conta e risco com futuras versões mpl
fonte
matplotlib 3.1.2 está disponível - Está disponível na nuvem Anaconda via conda-forge, mas não consegui instalá-lo via conda install. A alternativa manual funcionou: baixe matplotlib 3.1.2 do github e instale via pip
fonte
ERROR: Could not install packages due to an EnvironmentError: [WinError 5] Access is denied: 'c:\\users\\w-book\\anaconda3\\lib\\site-packages\\matplotlib\\backends\\_backend_agg.cp37-win_amd64.pyd' Consider using the --user option or check the permissions.
Acontece com matplotlib versão 3.1.1, conforme sugerido pela importância de seringernest
Seguir resolveu meu problema
pip install matplotlib==3.1.0
fonte
rustyDev está certo sobre o conda-forge, mas eu não precisei fazer uma instalação pip manual a partir de um download do github. Para mim, no Windows, funcionou diretamente. E as tramas são boas novamente.
https://anaconda.org/conda-forge/matplotlib
pontos opcionais, não necessários para a resposta:
Depois, tentei outras etapas, mas não são necessárias: No prompt do conda: conda search matplotlib --info não mostrou nenhuma informação de nova versão, a informação mais recente foi para 3.1.1. Portanto, tentei pip usando
pip install matplotlib==3.1.2
But pip diz "Requisito já satisfeito"Então obter a versão de acordo com medium.com/@rakshithvasudev/…
python - import matplotlib - matplotlib.__version__
mostra que 3.1.2 foi instalado com sucessoA propósito, eu tive esse erro diretamente após atualizar o Spyder para v4.0.0. O erro estava em um gráfico de uma matriz de confusão. Isso já foi mencionado há alguns meses. stackoverflow.com/questions/57225685/… que já está relacionado a esta questão marítima.
fonte
conda install matplotlib = 3.1.0
Isso funcionou para mim e baixei o matplotlib de 3.1.1 para 3.1.0 e os mapas de calor começaram a se comportar corretamente
fonte
Resolvi esse problema com o seguinte código:
fonte