module seaborn has no attribute histplot как исправить
Seaborn Lineplot Module Object Has No Attribute ‘Lineplot’
Using seaborn’s documentation code to generate a lineplot returns an AttributeError: ‘module’ object has no attribute ‘lineplot’. I have updated seaborn and reimported the module and tried again, no luck. Did lineplot get retired, or is there something else going on?
4 Answers 4
If you are using conda, you need to install seaborn with the version specified:
Once your seaborn 0.9.0 is installed properly, you should be able to use the lineplot function (at least it works on mine).
That way you don’t have to go outside of the conda ecosystem and use seaborn with pip.
Lineplot works with update to seaborn 0.9. conda has not yet integrated seaborn 0.9.0 into it’s default channel, which is why the update to 0.9 failed on my first go.
My problem was that I had an older version ( 0.8.x ) installed, so simply running pip install seaborn doesn’t help in that case.
Alternatively, you can directly upgrade to the latest version of seaborn like this:
Within Jupyter notebook you can run the install without leaving the notebook.
You only have to add the tag «y» to install the package.
Seaborn для визуализации данных в Python
Seaborn — библиотека для создания статистических графиков на Python. Она построена на основе matplotlib и тесно интегрируется со структурами данных pandas. Seaborn помогает вам изучить и понять данные. Его функции построения графиков работают с датасетами и выполняют все необходимы преобразования для создания информативных графиков.
Синтаксис, ориентированный на набор данных, позволяет сосредоточиться на графиках, а не деталях их построения.
Установка seaborn
Официальные релизы seaborn можно установить из PyPI:
Библиотека также входит в состав дистрибутива Anaconda:
Библиотека работает с Python версии 3.6+. Если их еще нет, эти библиотеки будут загружены при установке seaborn: numpy, scipy, pandas, matplotlib.
Как только вы установите Seaborn, можете скачать и построить тестовый график для одного из встроенных датасетов:
Выполнив этот код в Jupyter Notebook, увидите такой график.
Если вы не работаете с Jupyter, может потребоваться явный вызов matplotlib.pyplot.show() :
Давайте более детально рассмотрим построение популярных типов графиков.
Весь дальнейший код будет выполняться в Jupyter Notebook
Построение Bar Plot в Seaborn
Гистограммы отображают числовые величины на одной оси и переменные категории на другой. Они позволяют вам увидеть, значения параметров для каждой категории.
Гистограммы можно использовать для визуализации временных рядов, а также только категориальных данных.
Построение гистограммы
В результате получается четкая и простая гистограмма:
Чаще всего вы будете работать с датасетами, которые содержат гораздо больше данных, чем тот что приведен в примере. Иногда к этим наборам данным требуется сортировка, или подсчитать, сколько раз повторяются то или другое значение.
Когда вы работаете с данными можете столкнуться с ошибками и пропусками, которые в них имеются. К счастью, Seaborn защищает нас и автоматически применяет фильтр, который основан на вычислении среднего значения предоставленных данных.
Давайте импортируем классический датасет Titanic и визуализируем Bar Plot с этими данными:
Если мы выведем первые строки датасета ( titanic_dataset.head() ), увидим такую таблицу:
Наконец, мы используем эти данные и передаем их в качестве аргумента функции, с которой работаем. И получаем такой результат:
Построение горизонтальной гистограммы
В этом случае категориальная переменная будет отображаться по оси Y, что приведет к постройке горизонтального графика:
График будет выглядеть так:
Как изменить цвет в barplot()
Изменить цвет столбцов довольно просто. Для этого нужно задать параметр color функции barplot и тогда цвет всех столбцов изменится на заданный.
Изменим на голубой:
Тогда график будет выглядеть так:
Что приведет к такому результату:
Группировка Bar Plot в Seaborn
Часто требуется сгруппировать столбцы на графиках по одному признаку. Допустим, вы хотите сравнить некоторые общие данные, выживаемость пассажиров, и сгруппировать их по заданным критериям.
Нам может потребоваться визуализировать количество выживших пассажиров, в зависимости от класса (первый, второй и третий), но также учесть, города из которого они прибыли.
Всю эту информацию можно легко отобразить на гистограмме.
Давайте посмотрим на только что обсужденный пример:
Получим такой график:
Настройка порядка отображения групп столбцов на гистограмме
Например, до сих пор он упорядочивал классы с первого по третий. Что, если мы захотим сделать наоборот?
Получится такой график:
Изменяем доверительный интервал в barplot()
Давайте немного поэкспериментируем с атрибутом доверительного интервала:
Получим такой результат:
Или мы можем использовать стандартное отклонение:
Мы рассмотрели несколько способов построения гистограммы в Seaborn на примерах. Теперь перейдем к тепловым картам.
Построение Heatmap в Seaborn
Давайте посмотрим, как мы можем работать с библиотекой Seaborn на Python, чтобы создать базовую тепловую карту корреляции.
Для наших целей мы будем использовать набор данных о жилье Ames, доступный на Kaggle.com. Он содержит более 30 показателей, которые потенциально могут повлиять на стоимость недвижимости.
Поскольку Seaborn была написана на основе библиотеки визуализации данных Matplotlib, их довольно просто использовать вместе. Поэтому помимо стандартных модулей мы также собираемся импортировать Matplotlib.pyplot.
Следующий код создает матрицу корреляции между всеми исследуемыми показателями и нашей переменной y (стоимость недвижимости).
Корреляционная матрица всего с 13 переменными. Нельзя сказать, что она совсем не читабельна. Однако почему бы не облегчить себе жизнь визуализацией?
Простая тепловая карта в Seaborn
Seaborn прост в использовании, но в нем довольно сложно ориентироваться. Библиотека поставляется с множеством встроенных функций и обширной документацией. Может быть трудно понять, какие именно аргументы использовать, если вам не нужны все возможные навороты.
Давайте сделаем базовую тепловую карту более полезной с минимальными усилиями.
Взгляните на список аргументов heatmap :
Для работы с heatmap лучше всего подходит расходящаяся цветовая палитра. Она имеет два очень разных темных (насыщенных) цвета на соответствующих концах диапазона интерполированных значений с бледной, почти бесцветной средней точкой. Проиллюстрируем это утверждение и разберемся с еще одной небольшой деталью: как сохранить созданную тепловую карту в файл png со всеми необходимыми x и y метками ( xticklabels и yticklabels ).
Треугольная тепловая карта корреляции
Взгляните на любую из приведенных выше тепловых карт. Если вы отбросите одну из ее половин по диагонали, обозначенной единицами, вы не потеряете никакой информации. Итак, давайте сократим тепловую карту, оставив только нижний треугольник.
Давайте воспользуемся функцией np.triu() библиотеки numpy, чтобы изолировать верхний треугольник матрицы, превращая все значения в нижнем треугольнике в 0. np.tril() будет делать то же самое, только для нижнего треугольника. В свою очередь функция np.ones_like() изменит все изолированные значения на 1.
Корреляция независимых переменных с зависимой
Довольно часто мы хотим создать цветную карту, которая показывает выраженность связи между каждой независимой переменной, включенной в нашу модель, и зависимой переменной.
Следующий код возвращает корреляцию каждого параметра с «ценой продажи», единственной зависимой переменной в порядке убывания.
Давайте используем полученный список в качестве данных для отображения на тепловой карте.
Эти примеры демонстрируют основную функциональность heatmap в Seaborn. Теперь перейдем к точечным диаграммам.
Построение Scatter Plot в Seaborn
Давайте рассмотрим процесс создания точечной диаграммы в Seaborn. Построим простые и трехмерные диаграммы рассеивания, а также групповые графики на базе FacetGrid.
Импорт данных
Мы будем использовать набор данных, основанный на мировом счастье. Сравнение его индекса с другими показателям отразит факторы, влияющие на уровень счастья в мире.
Построение точечной диаграммы
На графике отразим соотношение индекса счастья к экономике страны (ВВП на душу населения):
Оси диаграммы по умолчанию подписываются именами столбцов, которые соответствуют заголовкам из загружаемого файла. Ниже мы рассмотрим, как это изменить.
После выполнения кода мы получим следующее:
Результат показал прямую зависимость между ВВП на душу населения и предполагаемого уровня счастья жителей конкретной страны или региона.
Построение группы графиков scatterplot при помощи FacetGrid
Если требуется сравнить много переменных друг с другом, например, среднюю продолжительность жизни наряду с оценкой счастья и уровнем экономики, нет необходимости строить 3D-график.
Несмотря на существование двумерных диаграмм, позволяющих визуализировать соотношение между множествами переменных, не все из них просты в применении.
Взглянем на следующий пример:
В этом примере мы создали экземпляр объекта FacetGrid с параметром dataframe в качестве данных. При передаче значения «Region» аргументу col библиотека сгруппирует датасет по регионам и построит диаграмму рассеивания для каждого из них.
Параметр hue задает каждому региону собственный оттенок. Наконец, при помощи аргумента col_wrap ширина области Figure ограничивается до 5-ти диаграмм. По достижении этого предела следующие графики будут построены на новой строке.
В результате будет сформировано 10 графиков по каждому региону с соответствующими им осями. Непосредственно перед печатью мы вызываем метод, добавляющий легенду с обозначением цветовой маркировки.
Построение 3D-диаграммы рассеивания
К сожалению, в Seaborn отсутствует собственный 3D-движок. Являясь лишь дополнением к Matplotlib, он опирается на графические возможности основной библиотеки. Тем не менее, мы все еще можем применить стиль Seaborn к трехмерной диаграмме.
Посмотрим, как она будет выглядеть с выборкой по уровням счастья, экономики и здоровья:
AttributeError: module ‘tensorflow’ has no attribute ‘enable_eager_execution’
I just tried to enable eager execution in my shell which is actually showing an error:
My Tensorflow version is 2.0
can anyone tell me why am I getting this.
7 Answers 7
Eager execution is enabled by default in version 2.x You can check that by using
It should return True. If you are having version less then 2.0 then it can be enabled by using
I got same error and many with version 2.0. Downgrading to 1.1X is not the solution.
Eager execution mode was added to Tensorflow starting with version 1.8. So an update is necessary. In addition, it is a relatively new feature with many glitches and frequent updates, so using the most recent version that can work for you is recommended. Try
Eager enabled by default in tf2, you do can disable it as below
If you do have to call something, tf.compat.v1.enable_eager_execution is available.
for tensorflow v1.x code, this will works:
I have Keras v2.1.0 installed. Eager_execution was not enabled by default and import tensorflow.contrib.eager as tfe tfe.enable_eager_execution()
did not work for me. (A check using tf.executing_eagerly() returned False.)
However, what worked for me was:
AttributeError: ‘module’ object has no attribute
I have two python modules:
What does the error mean? How do I fix it?
16 Answers 16
You have mutual top-level imports, which is almost always a bad idea.
If you really must have mutual imports in Python, the way to do it is to import them within a function:
Now a.py can safely do import b without causing problems.
(At first glance it might appear that cause_a_to_do_something() would be hugely inefficient because it does an import every time you call it, but in fact the import work only gets done the first time. The second and subsequent times you import a module, it’s a quick operation.)
I have also seen this error when inadvertently naming a module with the same name as one of the standard Python modules. E.g. I had a module called commands which is also a Python library module. This proved to be difficult to track down as it worked correctly on my local development environment but failed with the specified error when running on Google App Engine.
I got this error by referencing an enum which was imported in a wrong way, e.g.:
Hope that helps someone
I experienced this error because the module was not actually imported. The code looked like this:
on ubuntu 18.04 ( virtualenv, python.3.6.x), the following reload snippet solved the problem for me:
main.py
for more documentation check : here
All the above answers are great, but I’d like to chime in here. If you did not spot any issue mentioned above, try clear up your working environment. It worked for me.
For me, the reason for this error was that there was a folder with the same name as the python module I was trying to import.
And python treated that folder as a python package and tried to import from that empty package «core», not from core.py.
Seems like for some reason git left that empty folder during the branches switch
So I just removed that folder and everything worked like a charm
Not sure how but the below change sorted my issue:
Circular imports cause problems, but Python has ways to mitigate it built-in.