Автор оригинала: 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
Используя 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.
Он служит уникальным практическим руководством по визуализации данных, в изобилии инструментов, которые вы могли бы использовать в своей карьере.