Построение графика с помощью Seaborn | Python
Эта статья познакомит вас с построением графиков в 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 используется для рисования отдельных ленточных графиков на основе категории, указанной параметром оттенка.