Saat memplot peta panas dengan dasar laut (dan matriks korelasi dengan matplotlib), baris pertama dan terakhir dipotong menjadi dua. Ini terjadi juga ketika saya menjalankan contoh kode minimal yang saya temukan online ini.
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()
Label pada sumbu y berada di tempat yang benar, tetapi barisnya tidak sepenuhnya ada.
Beberapa hari yang lalu, ini berfungsi sebagaimana mestinya. Sejak itu, saya menginstal texlive-xetex jadi saya menghapusnya lagi tetapi itu tidak menyelesaikan masalah saya.
Ada ide apa yang bisa saya lewatkan?
python
matplotlib
seaborn
Jepit
sumber
sumber
Jawaban:
Sayangnya matplotlib 3.1.1 memecahkan peta panas dasar laut ; dan secara umum sumbu terbalik dengan kutu tetap.
Ini diperbaiki dalam versi pengembangan saat ini; Anda mungkin karenanya
ax.set_ylim(bottom, top) # set the ylim to bottom, top
)sumber
ax = sns.heatmap(...)
, aturax.set_ylim(...)
ke apa pun yang Anda inginkan, batasan Anda.ax.set_ylim(0 ,7)
. Hanya menggunakan ax.set_ylim (7) meninggalkan satu baris dibelah dua.Ini adalah bug di regresi matplotlib antara 3.1.0 dan 3.1.1 Anda dapat memperbaikinya dengan:
sumber
bottom
lebih besar daritop
?Memperbaiki penggunaan di atas dan menyetel batas peta panas secara manual.
Pertama
memeriksa sumbu saat ini dengan
Diperbaiki dengan
sumber
Saya menyelesaikannya dengan menambahkan baris ini di kode saya, dengan
matplotlib==3.1.1
:ax.set_ylim(sorted(ax.get_xlim(), reverse=True))
NB. Satu-satunya alasan ini berhasil adalah karena sumbu x tidak berubah, jadi gunakan risiko Anda sendiri dengan versi MPL mendatang
sumber
matplotlib 3.1.2 keluar - Ini tersedia di cloud Anaconda melalui conda-forge tetapi saya tidak dapat menginstalnya melalui conda install. Alternatif manual berfungsi: Unduh matplotlib 3.1.2 dari github dan instal melalui pip
sumber
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.
Itu terjadi dengan matplotlib versi 3.1.1 seperti yang disarankan oleh pentingnya beingernest
Mengikuti memecahkan masalah saya
pip install matplotlib==3.1.0
sumber
rustyDev benar tentang conda-forge, tetapi saya tidak perlu melakukan penginstalan pip manual dari unduhan github. Bagi saya, di Windows, ini bekerja secara langsung. Dan plotnya bagus lagi.
https://anaconda.org/conda-forge/matplotlib
poin opsional, tidak diperlukan untuk jawaban:
Setelah itu, saya mencoba langkah lain, tetapi tidak diperlukan: Dalam prompt conda: pencarian conda matplotlib --info tidak menunjukkan info versi baru, info terbaru adalah untuk 3.1.1. Jadi saya mencoba menggunakan pip
pip install matplotlib==3.1.2
Tapi pip mengatakan "Persyaratan sudah dipenuhi"Kemudian dapatkan versinya sesuai dengan medium.com/@rakshithvasudev/…
python - import matplotlib - matplotlib.__version__
menunjukkan bahwa 3.1.2 berhasil diinstalBtw, saya mengalami kesalahan ini langsung setelah memperbarui Spyder ke v4.0.0. Kesalahannya ada di plot matriks kebingungan. Ini sudah disebutkan beberapa bulan lalu. stackoverflow.com/questions/57225685/… yang sudah ditautkan ke pertanyaan dasar laut ini.
sumber
conda install matplotlib = 3.1.0
Ini berfungsi untuk saya dan menurunkan matplotlib dari 3.1.1 ke 3.1.0 dan peta panas mulai berfungsi dengan benar
sumber
Saya memecahkan masalah ini dengan kode berikut:
sumber