Построение графика с помощью Seaborn | Python

Опубликовано: 14 Июля, 2021

Эта статья познакомит вас с построением графиков в Python с помощью Seaborn, самой популярной библиотеки статистической визуализации в Python.

Установка: Самый простой способ установить seaborn - использовать pip. Введите в терминале следующую команду:

 pip install seaborn

ИЛИ вы можете скачать его отсюда и установить вручную.

Построение категориальных диаграмм рассеяния с помощью Seaborn

Stripplot

Python3




# Python program to illustrate
# Plotting categorical scatter
# plots with Seaborn
# importing the required module
import matplotlib.pyplot as plt
import seaborn as sns
# x axis values
x = [ 'sun' , 'mon' , 'fri' , 'sat' , 'tue' , 'wed' , 'thu' ]
# y axis values
y = [ 5 , 6.7 , 4 , 6 , 2 , 4.9 , 1.8 ]
# plotting strip plot with seaborn
ax = sns.stripplot(x, y);
# giving labels to x-axis and y-axis
ax. set (xlabel = 'Days' , ylabel = 'Amount_spend' )
# giving title to the plot
plt.title( 'My first graph' );
# function to show plot
plt.show()

Выход:

Пояснение: Это один из видов диаграммы разброса категориальных данных с помощью seaborn.

  • Категориальные данные представлены на оси x, а значения, соответствующие им, представлены на оси y.
  • Функция .striplot () используется для определения типа графика и нанесения его на холст с помощью.
  • Функция .set () используется для установки меток осей x и осей y.
  • Функция .title () используется для присвоения заголовка графику.
  • Для просмотра графика мы используем функцию .show () .

Stripplot использует встроенный набор данных, указанный в seaborn:

Python3




# Python program to illustrate
# Stripplot using inbuilt data-set
# given in seaborn
# importing the required module
import matplotlib.pyplot as plt
import seaborn as sns
# use to set style of background of plot
sns. set (style = "whitegrid" )
# loading data-set
iris = sns.load_dataset( 'iris' )
# plotting strip plot with seaborn
# deciding the attributes of dataset on
# which plot should be made
ax = sns.stripplot(x = 'species' , y = 'sepal_length' , data = iris)
# giving title to the plot
plt.title( 'Graph' )
# function to show plot
plt.show()

Выход:

Объяснение:

  • iris - это набор данных, уже присутствующий в модуле seaborn для использования.
  • Мы используем функцию .load_dataset () для загрузки данных. Мы также можем загрузить любой другой файл, указав путь и имя файла в аргументе.
  • Функция .set (style = ”whitegrid”) здесь также используется для определения фона графика. Мы можем использовать “darkgrid”
    вместо whitegrid, если нам нужен темный фон.
  • В функции .stripplot () мы должны определить, какой атрибут набора данных должен быть на оси x, а какой атрибут набора данных должен быть на оси y. data = iris означает, что атрибуты, которые мы определили ранее, должны быть взяты из данных.
  • Мы также можем нарисовать этот график с помощью matplotlib, но проблема с matplotlib заключается в его параметрах по умолчанию. Причина , почему Seaborn настолько велика , с DataFrames является, например, этикетки от DataFrames автоматически распространяются на участки или другие структуры данных , как вы видите на рисунке выше видов имя столбца приходит на оси х , а имя столбца stepal_length приходит на у -axis, что невозможно с matplotlib. Мы должны явно определить метки оси x и оси y.

Swarmplot

Python3




# Python program to illustrate
# plotting using Swarmplot
 
# importing the required module
import matplotlib.pyplot as plt
import seaborn as sns
 
# use to set style of background of plot
sns.set(style="whitegrid")
 
# loading data-set
iris = sns.load_dataset("iris")
 
# plotting strip plot with seaborn
# deciding the attributes of dataset on
# which plot should be made
ax = sns.swarmplot(x="species", y="sepal_length", data=iris)
 
# giving title to the plot
plt.title("Graph")
 
# function to show plot
plt.show()

Выход:

Объяснение:
Это очень похоже на stripplot, но с той лишь разницей, что он не позволяет перекрывать маркеры. Это вызывает дрожание маркеров графика, так что график можно легко прочитать без потери информации, как показано на графике выше.

  • Мы используем функцию .swarmplot () для построения графика swarn.
  • Еще одно отличие, которое мы можем заметить в Seaborn и Matplotlib, заключается в том, что работа с DataFrames идет не так гладко с Matplotlib, что может раздражать, если мы проводим исследовательский анализ с помощью Pandas. И это именно то, что Seaborn делает легко: функции построения графиков работают с DataFrames и массивами, которые содержат весь набор данных.

Примечание: при желании мы также можем изменить представление данных на определенной оси.

Пример :

Python3




# importing the required module
import matplotlib.pyplot as plt
import seaborn as sns
# use to set style of background of plot
sns. set (style = "whitegrid" )
# loading data-set
iris = sns.load_dataset( 'iris' )
# plotting strip plot with seaborn
# deciding the attributes of dataset on
# which plot should be made
ax = sns.swarmplot(x = 'sepal_length' , y = 'species' , data = iris)
# giving title to the plot
plt.title( 'Graph' )
# function to show plot
plt.show()

Выход:

То же самое можно сделать и в стрип -лоте. Наконец, мы можем сказать, что Seaborn - это расширенная версия matplotlib, которая пытается упростить четко определенный набор сложных вещей.

Barplot

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

Синтаксис:

 barplot ([x, y, оттенок, данные, порядок, hue_order,…])

Python3




# import the seaborn libaray
import seaborn as sns
# reading the dataset
df = sns.load_dataset( 'tips' )
# change the estimator from mean to
# standard devaition
sns.barplot(x = 'sex' , y = 'total_bill' , data = df,
palette = 'plasma' )

Выход:

Объяснение:
Глядя на график, можно сказать, что средний total_bill для мужчины больше, чем для женщины.

  • Палитра используется для установки цвета графика.
  • Оценщик используется как статистическая функция для оценки в каждой категориальной ячейке.

Граф

Счетная диаграмма в основном подсчитывает категории и возвращает количество их появлений. Это один из самых простых сюжетов, предоставляемых библиотекой seaborn.

Синтаксис:

 countplot ([x, y, оттенок, данные, порядок,…])

Python3




# import the seaborn libaray
import seaborn as sns
# reading the dataset
df = sns.load_dataset( 'tips' )
sns.countplot(x = 'sex' , data = df)

Выход:

Объяснение:

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

Boxplot

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

Синтаксис:

 boxplot ([x, y, оттенок, данные, порядок, hue_order,…])

Python3




# import the seaborn libaray
import seaborn as sns
# reading the dataset
df = sns.load_dataset( 'tips' )
sns.boxplot(x = 'day' , y = 'total_bill' , data = df, hue = 'smoker' )

Выход:

Объяснение:

x принимает категориальный столбец, а y - числовой столбец. Следовательно, мы можем видеть общий счет, потраченный каждый день ». оттенок »используется для дальнейшего разделения по категориям. Глядя на сюжет, мы можем сказать, что у людей, которые не курят, в пятницу счет был выше, чем у людей, которые курили.

Скрипка

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

Синтаксис:

 сценарий скрипки ([x, y, оттенок, данные, порядок,…])

Python3




# import the seaborn libaray
import seaborn as sns
# reading the dataset
df = sns.load_dataset( 'tips' )
sns.violinplot(x = 'day' , y = 'total_bill' , data = df,
hue = 'sex' , split = True )

Выход:

Объяснение:

  • оттенок используется для дальнейшего разделения данных с использованием категории пола
  • установка split = True будет рисовать половину скрипки для каждого уровня. Это может упростить прямое сравнение распределений.

Stripplot

По сути, он создает диаграмму рассеяния на основе категории.

Синтаксис:

 stripplot ([x, y, оттенок, данные, порядок,…])

Python3




# import the seaborn libaray
import seaborn as sns
# reading the dataset
df = sns.load_dataset( 'tips' )
sns.stripplot(x = 'day' , y = 'total_bill' , data = df,
jitter = True , hue = 'smoker' , dodge = True )

Выход:

Объяснение:

  • Одна из проблем с ленточным графиком заключается в том, что вы не можете точно сказать, какие точки расположены друг над другом, и поэтому мы используем параметр jitter, чтобы добавить некоторый случайный шум.
  • Параметр jitter используется для добавления количества джиттера (только вдоль категориальной оси), что может быть полезно, когда у вас много точек, и они перекрываются, чтобы было легче увидеть распределение.
  • оттенок используется для дополнительного разделения на категории
  • Параметр split = True используется для рисования отдельных ленточных графиков на основе категории, указанной параметром оттенка.