Beim Zeichnen von Heatmaps mit Seaborn (und Korrelationsmatrizen mit Matplotlib) werden die erste und die letzte Reihe halbiert. Dies passiert auch, wenn ich dieses minimale Codebeispiel ausführe, das ich online gefunden habe.
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()
Die Beschriftungen auf der y-Achse befinden sich an der richtigen Stelle, aber die Zeilen sind nicht vollständig vorhanden.
Vor ein paar Tagen hat es wie vorgesehen funktioniert. Seitdem habe ich texlive-xetex installiert, also habe ich es wieder entfernt, aber es hat mein Problem nicht gelöst.
Irgendwelche Ideen, was mir fehlen könnte?
python
matplotlib
seaborn
Flops
quelle
quelle
Antworten:
Leider hat matplotlib 3.1.1 seegeborene Heatmaps gebrochen ; und im Allgemeinen umgekehrte Achsen mit festen Zecken.
Dies ist in der aktuellen Entwicklungsversion behoben. Sie können daher
ax.set_ylim(bottom, top) # set the ylim to bottom, top
)quelle
ax = sns.heatmap(...)
einax.set_ylim(...)
, worauf Sie Ihre Grenzen setzen müssen.ax.set_ylim(0 ,7)
. Mit nur ax.set_ylim (7) wurde eine Zeile halbiert.Es ist ein Fehler in der Matplotlib-Regression zwischen 3.1.0 und 3.1.1. Sie können dies korrigieren, indem Sie:
quelle
bottom
größer sein alstop
?Mit dem oben genannten Problem behoben und die Heatmap-Grenzwerte manuell festgelegt.
Zuerst
überprüfte die aktuellen Achsen mit
Behoben mit
quelle
Ich habe es gelöst, indem ich diese Zeile in meinen Code eingefügt habe, mit
matplotlib==3.1.1
:ax.set_ylim(sorted(ax.get_xlim(), reverse=True))
NB. Der einzige Grund, warum dies funktioniert, ist, dass die x-Achse nicht geändert wird. Verwenden Sie sie daher auf eigenes Risiko für zukünftige MPL-Versionen
quelle
matplotlib 3.1.2 ist out - Es ist in der Anaconda-Cloud über conda-forge verfügbar, aber ich konnte es nicht über conda install installieren. Die manuelle Alternative hat funktioniert: Laden Sie matplotlib 3.1.2 von github herunter und installieren Sie es über pip
quelle
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.
Dies geschieht mit matplotlib Version 3.1.1, wie es durch die Wichtigkeit von beestest vorgeschlagen wird
Das Folgende hat mein Problem gelöst
pip install matplotlib==3.1.0
quelle
rustyDev hat Recht mit conda-forge, aber ich musste keine manuelle Pip-Installation von einem Github-Download durchführen. Unter Windows hat es direkt funktioniert. Und die Handlungen sind alle wieder schön.
https://anaconda.org/conda-forge/matplotlib
optionale Punkte, die für die Antwort nicht benötigt werden:
Danach habe ich andere Schritte ausprobiert, die jedoch nicht benötigt werden: In conda prompt: conda search matplotlib --info zeigte keine neuen Versionsinformationen an, die neuesten Informationen waren für 3.1.1. Also habe ich versucht, pip mit
pip install matplotlib==3.1.2
Aber pip sagt "Anforderung bereits erfüllt"Das Abrufen der Version gemäß medium.com/@rakshithvasudev/…
python - import matplotlib - matplotlib.__version__
zeigt dann, dass 3.1.2 erfolgreich installiert wurdeÜbrigens hatte ich diesen Fehler direkt nach dem Update von Spyder auf v4.0.0. Der Fehler lag in einer Darstellung einer Verwirrungsmatrix. Dies wurde bereits vor einigen Monaten erwähnt. stackoverflow.com/questions/57225685/…, das bereits mit dieser seegeborenen Frage verknüpft ist.
quelle
conda install matplotlib = 3.1.0
Dies funktionierte für mich und stufte matplotlib von 3.1.1 auf 3.1.0 herab, und die Heatmaps begannen sich korrekt zu verhalten
quelle
Ich habe dieses Problem mit folgendem Code gelöst:
quelle