Коробчатая диаграмма Seaborn - Учебное пособие и примеры

Введение Seaborn - одна из наиболее широко используемых библиотек визуализации данных в Python как расширение Matplotlib. Он предлагает простой, интуитивно понятный, но настраиваемый API для визуализации данных. В этом уроке мы рассмотрим, как построить коробчатую диаграмму в Seaborn. > Ящичные диаграммы используются для визуализации сводной статистики набора данных, отображая атрибуты распределения, такие как диапазон и распределение данных. Импорт данных Нам нужно будет выбрать набор данных с непрерывной функцией.

Вступление

Seaborn - одна из наиболее широко используемых библиотек визуализации данных в Python как расширение Matplotlib . Он предлагает простой, интуитивно понятный, но настраиваемый API для визуализации данных.

В этом уроке мы рассмотрим, как построить коробчатую диаграмму в Seaborn .

Ящичные диаграммы используются для визуализации сводной статистики набора данных, отображая атрибуты распределения, такие как диапазон и распределение данных.

Импортировать данные

Нам нужно будет выбрать набор данных с непрерывными функциями, чтобы создать коробчатую диаграмму, потому что прямоугольные диаграммы отображают сводную статистику для непрерывных переменных - медиана и диапазон набора данных. Мы будем работать с набором данных Forest Fires.

Мы начнем с импорта Pandas для загрузки и анализа набора данных. Очевидно, мы также захотим импортировать Seaborn. Наконец, мы импортируем модуль Pyplot из Matplotlib, чтобы показать визуализации:

 import pandas as pd 
 from matplotlib import pyplot as plt 
 import seaborn as sns 

Давайте воспользуемся Pandas для чтения CSV-файла и проверим, как DataFrame , распечатав его заголовок. Кроме того, мы хотим проверить, содержит ли набор данных какие-либо отсутствующие значения:

 dataframe = pd.read_csv("forestfires.csv") 
 print(dataframe.head()) 
 print(dataframe.isnull().values.any()) 

 XY month day FFMC DMC DC ISI temp RH wind rain area 
 0 7 5 mar fri 86.2 26.2 94.3 5.1 8.2 51 6.7 0.0 0.0 
 1 7 4 oct tue 90.6 35.4 669.1 6.7 18.0 33 0.9 0.0 0.0 
 2 7 4 oct sat 90.6 43.7 686.9 6.7 14.6 33 1.3 0.0 0.0 
 3 8 6 mar fri 91.7 33.3 77.5 9.0 8.3 97 4.0 0.2 0.0 
 4 8 6 mar sun 89.3 51.3 102.2 9.6 11.4 99 1.8 0.0 0.0 
 False 

Второй оператор печати возвращает False , что означает отсутствие недостающих данных. Если бы они были, нам пришлось бы обрабатывать отсутствующие значения DataFrame .

После того, как мы проверим согласованность нашего набора данных, мы хотим выбрать непрерывные функции, которые мы хотим визуализировать. Для удобства мы сохраним их как собственные переменные:

 FFMC = dataframe["FFMC"] 
 DMC = dataframe["DMC"] 
 DC = dataframe["DC"] 
 RH = dataframe["RH"] 
 ISI = dataframe["ISI"] 
 temp = dataframe["temp"] 

Бокс-сюжет в Сиборне

Теперь, когда мы загрузили данные и выбрали функции, которые хотим визуализировать, мы можем создать прямоугольные диаграммы!

Мы можем создать коробчатую диаграмму, просто используя функцию boxplot . Мы передаем фрейм данных, а также переменные, которые хотим визуализировать:

 sns.boxplot(x=DMC) 
 plt.show() 

простой коробчатый сюжетseaborn{.ezlazyload}

Если мы хотим визуализировать только распределение категориальной переменной, мы можем предоставить выбранную нами переменную в качестве аргумента x Если мы сделаем это, Seaborn автоматически вычислит значения по оси Y, как мы можем видеть на предыдущем изображении.

Однако, если есть конкретное распределение, которое мы хотим сегментировать по типу, мы также можем предоставить категориальную переменную X и непрерывную переменную Y.

 day = dataframe["day"] 
 sns.boxplot(x=DMC, y=day) 
 plt.show() 

коробчатая диаграмма с переменной x и yseaborn{.ezlazyload}

На этот раз мы можем увидеть коробчатую диаграмму, сгенерированную для каждого дня недели, как указано в наборе данных.

Если мы хотим визуализировать несколько столбцов одновременно, что мы предоставляем аргументам x и y Что ж, мы предоставляем метки для данных, которые нам нужны, и предоставляем фактические данные с помощью аргумента data

Мы можем создать новый DataFrame содержащий только данные, которые мы хотим визуализировать, и melt() в data , предоставив такие метки, как x='variable' и y='value' :

 df = pd.DataFrame(data=dataframe, columns=["FFMC", "DMC", "DC", "ISI"]) 
 sns.boxplot(x="variable", y="value", data=pd.melt(df)) 
 plt.show() 

Ящичковая диаграмма данныхseaborn{.ezlazyload}

Настроить коробку Seaborn

Изменить цвета рамочной диаграммы

Seaborn автоматически присвоит разные цвета разным переменным, чтобы мы могли легко их визуально различать. Тем не менее, мы также можем предоставить список используемых цветов, если захотим их указать.

После выбора списка цветов с шестнадцатеричными значениями (или любого допустимого цвета Matplotlib) мы можем передать их в аргумент palette

 day = dataframe["day"] 
 colors = ['#78C850', '#F08030', '#6890F0','#F8D030', '#F85888', '#705898', '#98D8D8'] 
 sns.boxplot(x=DMC, y=day, palette=colors) 
 plt.show() 

график изменения цветовseaborn{.ezlazyload}

Настроить метки осей

Мы можем легко настроить метки по осям X и Y с помощью Seaborn, например, изменив размер шрифта, изменив метки или повернув их, чтобы сделать отметки более удобными для чтения:

 df = pd.DataFrame(data=dataframe, columns=["FFMC", "DMC", "DC", "ISI"]) 
 boxplot = sns.boxplot(x="variable", y="value", data=pd.melt(df)) 
 boxplot.axes.set_title("Distribution of Forest Fire Conditions", fontsize=16) 
 boxplot.set_xlabel("Conditions", fontsize=14) 
 boxplot.set_ylabel("Values", fontsize=14) 
 plt.show() 

seaborn настраивает метки осей коробчатогографика{.ezlazyload}

Заказ коробчатых графиков

Если мы хотим просмотреть поля в определенном порядке, мы можем сделать это, используя order и указав имена столбцов в том порядке, в котором вы хотите их видеть:

 df = pd.DataFrame(data=dataframe, columns=["FFMC", "DMC", "DC", "ISI"]) 
 boxplot = sns.boxplot(x="variable", y="value", data=pd.melt(df), order=["DC", "DMC", "FFMC", "ISI"]) 
 boxplot.axes.set_title("Distribution of Forest Fire Conditions", fontsize=16) 
 boxplot.set_xlabel("Conditions", fontsize=14) 
 boxplot.set_ylabel("Values", fontsize=14) 
 plt.show() 

ящичные участки морскогозаказа{.ezlazyload}

Создание подзаголовков

Если мы хотим , чтобы выделить участки для индивидуальных особенностей в их собственных сюжетных, мы могли бы сделать это путем создания фигуры и осей с subplots функцией от Matplotlib. Затем мы используем axes и получаем к ним доступ через их индекс. Функция boxplot() принимает ax , определяющий, по каким axes он должен быть нанесен на график:

 fig, axes = plt.subplots(1, 2) 
 sns.boxplot(x=day, y=DMC, orient='v', ax=axes[0]) 
 sns.boxplot(x=day, y=DC, orient='v', ax=axes[1]) 
 plt.show() 

seaborn создаетподсюжеты{.ezlazyload}

Коробчатая диаграмма с точками данных

Мы могли бы даже наложить болото на коробчатую диаграмму, чтобы увидеть распределение и образцы точек, составляющих это распределение, с немного более подробной информацией.

Для этого мы просто создаем один объект-фигуру, а затем создаем два разных графика. stripplot() будет boxplot() , поскольку они находятся на одной axes / figure :

 df = pd.DataFrame(data=dataframe, columns=["FFMC", "DMC", "DC", "ISI"]) 
 boxplot = sns.boxplot(x="variable", y="value", data=pd.melt(df), order=["DC", "DMC", "FFMC", "ISI"]) 
 boxplot = sns.stripplot(x="variable", y="value", data=pd.melt(df), marker="o", alpha=0.3, color="black", order=["DC", "DMC", "FFMC", "ISI"]) 
 boxplot.axes.set_title("Distribution of Forest Fire Conditions", fontsize=16) 
 boxplot.set_xlabel("Conditions", fontsize=14) 
 boxplot.set_ylabel("Values", fontsize=14) 
 plt.show() 

Seaborn Overlay Stripplot over boxplot{.ezlazyload}

Заключение

В этом уроке мы рассмотрели несколько способов построения коробчатой диаграммы с использованием Seaborn и Python. Мы также рассмотрели, как настроить цвета, метки, порядок, а также наложить Swarmplots и подзаголовок нескольких Box Plots.

Если вас интересует визуализация данных и вы не знаете, с чего начать, обязательно ознакомьтесь с нашим комплектом книг по визуализации данных в Python{.ebook-link} :

::: {style=“border: 1px solid #ebebeb;padding: 15px;"} {.ebook-link}

Визуализация данных в Python

::: {.row} ::: {.col-md-4 .col-xs-12} {.ezlazyload .img-responsive .center-block} :::

::: {.col-md-8 .col-xs-12 .my-auto} Станьте опасными с визуализацией данных

✅ 30-дневная гарантия возврата денег без вопросов

✅ от начального до продвинутого

✅ Регулярно обновляется бесплатно (последнее обновление в апреле 2021 г.)

✅ Обновлено с бонусными ресурсами и руководствами ::: ::: :::

Визуализация данных в Python с помощью Matplotlib и Pandas - это книга, предназначенная для абсолютных новичков в работе с Pandas и Matplotlib с базовыми знаниями Python и позволяющая им создать прочную основу для расширенной работы с этими библиотеками - от простых графиков до анимированных трехмерных графиков с интерактивными кнопки.

Он служит подробным руководством, которое научит вас всему, что вам нужно знать о Pandas и Matplotlib, в том числе о том, как создавать типы графиков, которые не встроены в саму библиотеку.

Книга «Визуализация данных в Python» , книга для начинающих и средних разработчиков Python, проведет вас через простые манипуляции с данными с помощью Pandas, охватит основные библиотеки построения графиков, такие как Matplotlib и Seaborn, и покажет, как использовать преимущества декларативных и экспериментальных библиотек, таких как Altair. В частности, на протяжении 11 глав эта книга охватывает 9 библиотек Python: Pandas, Matplotlib, Seaborn, Bokeh, Altair, Plotly, GGPlot, GeoPandas и VisPy.

Он служит уникальным практическим руководством по визуализации данных в виде множества инструментов, которые вы можете использовать в своей карьере.

comments powered by Disqus