Seabornを使用してヒートマップ(およびmatplotlibを使用して相関行列)をプロットすると、最初と最後の行が半分にカットされます。これは、オンラインで見つけたこの最小限のコード例を実行したときにも発生します。
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軸のラベルは正しい位置にありますが、行は完全にはありません。
数日前、意図したとおりに機能します。それ以来、texlive-xetexをインストールしたのでもう一度削除しましたが、問題は解決しませんでした。
私が見逃している可能性のあるアイデアはありますか?
残念ながらmatplotlib 3.1.1 海のヒートマップを壊した;そして概して、固定ティックを備えた反転軸。
これは現在の開発バージョンで修正されています。あなたはそれゆえに
ax.set_ylim(...)
)3.1.0と3.1.1の間のmatplotlib回帰のバグです。これは次の方法で修正できます。
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)
上記を使用してヒートマップ制限を手動で設定することで修正されました。
最初
ax = sns.heatmap(...
現在の軸を確認しました
ax.get_ylim()
(5.5, 0.5)
で修正
ax.set_ylim(6.0, 0)
matplotlib 3.1.2がリリースされました-conda-forgeを介してAnacondaクラウドで利用できますが、conda installを使用してインストールできませんでした。手動の代替案が機能しました:githubからmatplotlib 3.1.2をダウンロードし、pipを介してインストールします
% curl https://codeload.github.com/matplotlib/matplotlib/tar.gz/v3.1.2 --output matplotlib-3.1.2.tar.gz
% pip install matplotlib-3.1.2.tar.gz
_matplotlib==3.1.1
_を使用して、コードに次の行を追加することで解決しました:
ax.set_ylim(sorted(ax.get_xlim(), reverse=True))
NB。これが機能する唯一の理由は、x軸が変更されないためです。将来のmplバージョンでは自己責任で使用してください。
importanceofbeingernest によって示唆されているように、matplotlibバージョン3.1.1で発生します
次は私の問題を解決しました
pip install matplotlib==3.1.0
conda install matplotlib = 3.1.0
これは私のために機能し、matplotlibを3.1.1から3.1.0にダウングレードし、ヒートマップが正しく動作し始めました
rustyDevはconda-forgeについては正しいですが、githubのダウンロードから手動でpipをインストールする必要はありませんでした。私にとって、Windowsでは、それは直接機能しました。そして、プロットはすべて再びニースです。
https://anaconda.org/conda-forge/matplotlib
conda install -c conda-forge matplotlib
回答には不要なオプションポイント:
その後、私は他の手順を試しましたが、それらは必要ありません:condaプロンプト:conda search matplotlib --infoに新しいバージョン情報が表示されず、最新の情報は3.1.1でした。したがって、pip install matplotlib==3.1.2
を使用してpipを試しましたが、pipは「要件はすでに満たされています」と言っています
次に、medium.com/@ rakshithvasudev /…に従ってバージョンを取得すると、python - import matplotlib - matplotlib.__version__
は3.1.2が正常にインストールされたことを示します
ところで、Spyderをv4.0.0にアップデートした直後にこのエラーが発生しました。エラーは、混同行列のプロットにありました。これは数ヶ月前にすでに言及されました。 stackoverflow.com/questions/57225685/…これは、この海の問題にすでにリンクされています。