Вступление
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()
{.ezlazyload}
Если мы хотим визуализировать только распределение категориальной
переменной, мы можем предоставить выбранную нами переменную в качестве
аргумента x
Если мы сделаем это, Seaborn автоматически вычислит
значения по оси Y, как мы можем видеть на предыдущем изображении.
Однако, если есть конкретное распределение, которое мы хотим сегментировать по типу, мы также можем предоставить категориальную переменную X и непрерывную переменную Y.
day = dataframe["day"]
sns.boxplot(x=DMC, y=day)
plt.show()
{.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()
{.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()
{.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()
{.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()
{.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()
{.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.
Он служит уникальным практическим руководством по визуализации данных в виде множества инструментов, которые вы можете использовать в своей карьере.