При построении тепловых карт с помощью 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 и снова удалил его, но это не решило мою проблему.
Есть идеи, что мне может не хватать?
python
matplotlib
seaborn
Шлепки
источник
источник
Ответы:
К сожалению, matplotlib 3.1.1 сломал морские тепловые карты ; и вообще перевернутые оси с фиксированными отметками.
Это исправлено в текущей разрабатываемой версии; вы можете отсюда
ax.set_ylim(bottom, top) # set the ylim to bottom, top
)источник
ax = sns.heatmap(...)
, установитеax.set_ylim(...)
все, что вам нужно.ax.set_ylim(0 ,7)
. Использование только ax.set_ylim (7) оставило одну строку вдвое.Это ошибка в регрессии matplotlib между 3.1.0 и 3.1.1. Вы можете исправить это:
источник
bottom
быть больше чемtop
?Исправлено с использованием описанного выше и ручной установкой пределов тепловой карты.
Первый
проверил текущие оси с помощью
Исправлено с помощью
источник
Я решил это, добавив эту строку в свой код
matplotlib==3.1.1
:ax.set_ylim(sorted(ax.get_xlim(), reverse=True))
NB. Единственная причина, по которой это работает, заключается в том, что ось x не изменяется, поэтому используйте на свой страх и риск с будущими версиями mpl.
источник
matplotlib 3.1.2 отсутствует - он доступен в облаке Anaconda через conda-forge, но мне не удалось установить его через conda install. Сработала ручная альтернатива: загрузите matplotlib 3.1.2 из github и установите через pip
источник
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.
Это происходит с matplotlib версии 3.1.1, как было предложено importantofbeingernest
После решил мою проблему
pip install matplotlib==3.1.0
источник
rustyDev прав насчет conda-forge, но мне не нужно было делать ручную установку pip из загрузки с github. У меня в Windows это работало напрямую. И снова сюжеты хорошие.
https://anaconda.org/conda-forge/matplotlib
необязательные баллы, не необходимые для ответа:
Впоследствии я попробовал другие шаги, но они не нужны: В приглашении conda: поиск conda matplotlib --info не показал никакой информации о новой версии, самая последняя информация была для 3.1.1. Таким образом, я попробовал использовать пип,
pip install matplotlib==3.1.2
но пип говорит: «Требование уже выполнено»Затем получение версии согласно medium.com/@rakshithvasudev/…
python - import matplotlib - matplotlib.__version__
показывает, что 3.1.2 была успешно установленаКстати, эта ошибка возникла сразу после обновления Spyder до версии 4.0.0. Ошибка заключалась в построении матрицы неточностей. Об этом говорилось уже несколько месяцев назад. stackoverflow.com/questions/57225685/…, который уже связан с этим морским вопросом.
источник
conda установить matplotlib = 3.1.0
Это сработало для меня и понизило версию matplotlib с 3.1.1 до 3.1.0, и тепловые карты начали вести себя правильно.
источник
Я решил эту проблему с помощью следующего кода:
источник