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

Введение Seaborn - одна из наиболее широко используемых библиотек визуализации данных в Python как расширение Matplotlib. Он предлагает простой, интуитивно понятный, но настраиваемый API для визуализации данных. В этом уроке мы рассмотрим, как построить диаграмму рассеяния в Seaborn. Мы рассмотрим простые точечные диаграммы, множественные точечные диаграммы с FacetGrid, а также трехмерные точечные диаграммы. Импортировать данные Мы будем использовать набор данных World Happiness [https://www.kaggle.com/unsdsn/world-happiness] и сравним

Вступление

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

В этом уроке мы рассмотрим, как построить диаграмму рассеяния в Seaborn . Мы рассмотрим простые точечные диаграммы, множественные точечные диаграммы с FacetGrid, а также трехмерные точечные диаграммы.

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

Мы воспользуемся набором данных World Happiness и сравним показатель счастья с различными характеристиками, чтобы увидеть, что влияет на восприятие счастья в мире:

 import pandas as pd 
 
 df = pd.read_csv('worldHappiness2016.csv') 

Создайте точечную диаграмму в Seaborn

Теперь, когда набор данных загружен, давайте импортируем PyPlot, который мы будем использовать для отображения графика, а также Seaborn. Построим график оценки счастья в зависимости от экономики страны (ВВП на душу населения) :

 import matplotlib.pyplot as plt 
 import seaborn as sns 
 import pandas as pd 
 
 df = pd.read_csv('worldHappiness2016.csv') 
 
 sns.scatterplot(data = df, x = "Economy (GDP per Capita)", y = "Happiness Score") 
 
 plt.show() 

Seaborn упрощает построение базовых графиков, например диаграмм рассеяния. Нам не нужно возиться с объектом Figure Axes или настраивать что-либо, хотя мы можем, если захотим. Здесь мы предоставили df в качестве data и предоставили функции, которые мы хотим визуализировать, в качестве аргументов x и y

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

Теперь, если мы запустим этот код, нас встретят:

Учебник по простому графику разбросаseaborn{.ezlazyload}

Здесь существует сильная положительная корреляция между экономикой (ВВП на душу населения) и ощущением счастья жителей страны / региона.

Построение множественных точечных диаграмм в Seaborn с помощью FacetGrid

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

Хотя существуют 2D-графики, которые визуализируют корреляции между более чем двумя переменными, некоторые из них не совсем подходят для начинающих.

Seaborn позволяет нам FacetGrid объект FacetGrid, который мы можем использовать для фасетирования данных и построения нескольких связанных графиков, один рядом с другим.

Давайте посмотрим, как это сделать:

 import matplotlib.pyplot as plt 
 import pandas as pd 
 import seaborn as sns 
 
 df = pd.read_csv('worldHappiness2016.csv') 
 
 grid = sns.FacetGrid(df, col = "Region", hue = "Region", col_wrap=5) 
 grid.map(sns.scatterplot, "Economy (GDP per Capita)", "Health (Life Expectancy)") 
 
 grid.add_legend() 
 
 plt.show() 

Учебник по построению нескольких точечных графиков с фасетнойсеткой{.ezlazyload}

Здесь мы создали FacetGrid , передав ему наши данные ( df ). Указав аргумент col "Region" , мы сказали Seaborn, что хотим разбить данные на регионы и построить диаграмму рассеяния для каждого региона в наборе данных.

Мы также назначили hue в зависимости от региона, поэтому каждый регион имеет свой цвет. Наконец, мы установили аргумент col_wrap 5 чтобы весь рисунок не был слишком широким - он разбивается на каждые 5 столбцов в новую строку.

К этому объекту grid map() наши аргументы. В частности, мы указали sns.scatterplot как тип графика, который нам нужен, а также x и y мы хотим отобразить на этих графиках разброса.

В результате получается 10 различных графиков разброса, каждый со связанными x и y , разделенными по регионам.

В конце мы также добавили легенду, чтобы помочь идентифицировать цвета.

Построение трехмерной точечной диаграммы в Seaborn

К сожалению, в Seaborn нет встроенных функций 3D. Это расширение Matplotlib и полагается на него для тяжелой работы в 3D. Тем не менее, мы можем стилизовать 3D-график Matplotlib с помощью Seaborn.

Давайте зададим стиль с помощью Seaborn и визуализируем трехмерный график рассеяния счастья, экономики и здоровья:

 import matplotlib.pyplot as plt 
 import pandas as pd 
 import seaborn as sns 
 from mpl_toolkits.mplot3d import Axes3D 
 
 df = pd.read_csv('2016.csv') 
 sns.set(style = "darkgrid") 
 
 fig = plt.figure() 
 ax = fig.add_subplot(111, projection = '3d') 
 
 x = df['Happiness Score'] 
 y = df['Economy (GDP per Capita)'] 
 z = df['Health (Life Expectancy)'] 
 
 ax.set_xlabel("Happiness") 
 ax.set_ylabel("Economy") 
 ax.set_zlabel("Health") 
 
 ax.scatter(x, y, z) 
 
 plt.show() 

Выполнение этого кода приводит к интерактивной трехмерной визуализации, которую мы можем панорамировать и исследовать в трехмерном пространстве, стилизованной под график Сиборна:

диаграмма рассеяния seaborn3d{.ezlazyload}

Настройка точечных диаграмм в Seaborn

Используя Seaborn, легко настраивать различные элементы создаваемых вами сюжетов. Например, вы можете установить hue и size каждого маркера на точечной диаграмме.

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

 import matplotlib.pyplot as plt 
 import seaborn as sns 
 import pandas as pd 
 
 df = pd.read_csv('2016.csv') 
 
 sns.scatterplot(data = df, x = "Economy (GDP per Capita)", y = "Happiness Score", hue = "Region", size = "Freedom") 
 
 plt.show() 

Здесь мы установили hue на Region что означает, что данные из разных регионов будут иметь разные цвета. Кроме того, мы установили size пропорциональный функции свободы . Чем выше коэффициент свободы, тем крупнее точки:

диаграмма рассеяния для настройкиseaborn{.ezlazyload}

Или вы можете установить фиксированный размер для всех маркеров, а также цвет:

 sns.scatterplot(data = df, x = "Economy (GDP per Capita)", y = "Happiness Score", hue = "red", size = 5) 

Заключение

В этом уроке мы рассмотрели несколько способов построения диаграммы рассеяния с использованием Seaborn и Python.

Если вас интересует визуализация данных и вы не знаете, с чего начать, обязательно ознакомьтесь с нашим комплектом книг по визуализации данных в 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