Рубрики
Без рубрики

Seaborn Scatter Plot – Учебник и примеры

В этом уроке мы рассмотрим, как построить точечную диаграмму Seaborn в Python. Мы рассмотрим простые примеры построения графиков, а также многогранное построение нескольких графиков и 3D-графиков с использованием Seaborn и Matplotlib.

Автор оригинала: David Landup.

Seaborn Scatter Plot – Учебник и примеры

Вступление

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

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

Импорт Данных

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

import pandas as pd

df = pd.read_csv('worldHappiness2016.csv')

Постройте точечную диаграмму в Сиборне

Теперь, когда набор данных загружен, давайте импортируем 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 позволяет очень легко строить базовые графики, такие как точечные графики. Нам не нужно возиться с Фигурой объектом, Осями экземплярами или настраивать что-либо, хотя мы можем это сделать, если захотим. Здесь мы предоставили df в качестве аргумента data и предоставили функции, которые мы хотим визуализировать в качестве аргументов x и y .

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

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

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

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

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

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

Seaborn позволяет нам построить объект 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()

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

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

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

Это приводит к 10 различным диаграммам рассеяния, каждая из которых содержит связанные данные x и y , разделенные по регионам.

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

Построение 3D точечной диаграммы в Сиборне

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

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

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()

Запуск этого кода приводит к интерактивной 3D-визуализации, которую мы можем панорамировать и просматривать в трехмерном пространстве, стилизованном под сюжет морского рожка:

seaborn 3d scatter plot

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

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

Давайте изменим некоторые параметры и посмотрим, как выглядит сюжет при изменении:

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 , что означает, что данные из разных регионов будут иметь разные цвета. Кроме того, мы установили размер , чтобы быть пропорциональным функции Свобода . Чем выше коэффициент свободы, тем больше точек:

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

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

Вывод

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

Если вы заинтересованы в визуализации данных и не знаете, с чего начать, обязательно ознакомьтесь с нашей связкой книг по Визуализации данных в Python :

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

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

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

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

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