Диаграмма рассеяния в Pandas: Как создать диаграмму рассеяния в Pandas

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

Визуализация данных — важный шаг для определения направления вашего анализа. Во многих случаях рассмотрение данных через визуализацию помогает лучше понять их распределение.

К концу этого учебного курса вы узнаете:

  • Загрузка образца DataFrame в Pandas

  • Как создать диаграмму разброса

  • Как настроить цвета на точечной диаграмме

  • Как добавить заголовки на точечную диаграмму

  • Как изменить размер точек на точечной диаграмме

  • Как изменить цвета оттенков на диаграммах рассеяния Pandas

Содержание

Загрузка образца DataFrame Pandas

Чтобы следовать этому руководству шаг за шагом, я предоставил пример набора данных, который вы можете загрузить в Pandas DataFrame. Вы также можете использовать свои собственные данные, однако ваши результаты, конечно, будут отличаться.

# Загрузка образца данных в Pandas DataFrame
import pandas as pd
from matplotlib import pyplot as plt

df = pd.read_csv('https://raw.githubusercontent.com/AlexBugalter/Lesson/main/KNN_data.csv')

print(df.head())

# Вывод:
#           x         y   Label
# 0  5.539907  2.780370  Medium
# 1  5.309798  3.342864   Large
# 2  4.367271  4.551839   Large
# 3  3.812863  2.447711   Large
# 4  5.213783  5.133856   Large

В коде выше мы импортировали библиотеки Pandas и pyplot. Затем мы использовали функцию Pandas .read_csv() для загрузки набора данных и просмотрели первые пять строк с помощью функции Pandas .head().

Чтобы создать диаграмму рассеяния в Pandas, мы можем применить метод .plot() к нашему DataFrame. Эта функция позволяет задать параметры x и y, а также указать kind создаваемой диаграммы. Поскольку Pandas заимствует многие вещи из Matplotlib, синтаксис будет довольно знакомым.

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

# Функция Pandas для построения графиков
df.plot(
    x=None,         # Значения для оси x
    y=None,         # Значения для оси y
    kind='line',    # Тип графика
    title=None,     # Заголовок
    legend=False,   # Показывать ли легенду
    xlabel=None,    # Название оси x
    ylabel=None,    # Название оси y
    c=None,         # Цвет точек
    s=None          # Размер точек (число или столбец)
)

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

Как построить точечную диаграмму в Pandas

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

# Создание вашей первой диаграммы рассеяния в Pandas
df.plot(
   x='x', 
   y='y', 
   kind='scatter'
)

plt.show()

Это генерирует следующее изображение:

Настройка цветов на точечной диаграмме в Pandas

Pandas позволяет легко настраивать цвет точек на вашем графике. Мы можем сделать это с помощью параметра c=, который позволяет передавать имя цвета или его значение в формате hex.

Давайте посмотрим, как мы можем использовать цвет 'cornflowerblue' в точках нашего диаграммы рассеяния:

# Меняем цвет нашей диаграммы рассеяния
df.plot(
   x='x', 
   y='y', 
   kind='scatter', 
   c='cornflowerblue'
)

plt.show()

Этот возвращает следующее изображение:

Добавьте заголовки к своей диаграмме рассеяния Pandas

Pandas позволяет легко добавлять заголовки и метки осей к вашему диаграмм рассеяния. Для этого можно использовать следующие параметры:

  • title= принимает строку и устанавливает заголовок

  • xlabel= принимает строку и задает заголовок оси x

  • ylabel= принимает строку и задает заголовок ярлыка по оси y

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

#Добавление заголовков к диаграмме рассеяния Pandas
df.plot(
    x='x', 
    y='y', 
    kind='scatter', 
    c='cornflowerblue',
    title='Создание диаграммы рассеяния в Pandas',
    xlabel='Наш заголовок по оси X',
    ylabel='Наш заголовок по оси Y'
)

plt.show()

Это возвращает следующее изображение:

Измените размер точек на диаграмме рассеяния Pandas

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

Мы можем сделать это, используя параметр s=. Чтобы указать колонку, нам нужно использовать числовую колонку. Мы можем использовать функцию Pandas .map(), чтобы преобразовать наш столбец 'Label' в числовой столбец.

# Изменение размера точек диаграммы рассеяния
df['Size'] = df['Label'].map({'Small':10, 'Medium':20, 'Large':50})

df.plot(
    x='x', 
    y='y', 
    kind='scatter', 
    c='cornflowerblue',
    title='Создание диаграммы рассеяния в Pandas',
    xlabel='Наш заголовок по оси X',
    ylabel='Наш заголовок по оси Y',
    s='Size'
)

plt.show()

Это возвращает следующее изображение:

Добавьте несколько цветов в диаграмму рассеяния Pandas

Чтобы добавить несколько цветов к диаграмме рассеяния, вы можете добавить несколько графиков на одни и те же оси. Для этого мы можем разделить DataFrame на несколько DataFrames на основе их столбца Label.

Мы можем создать объект Axes при начальном построении графика и затем просто добавлять к этому объекту в последующих вызовах.

# Добавление нескольких меток данных
df1 = df[df['Label'] == 'Small']
df2 = df[df['Label'] == 'Medium']
df3 = df[df['Label'] == 'Large']

ax = df1.plot(x='x', y='y', kind='scatter', c='r', label='Small')
df2.plot(x='x', y='y', kind='scatter', ax=ax, c='g', label='Medium')
df3.plot(x='x', y='y', kind='scatter', ax=ax, c='b', label='Large')
plt.show()

Добавив параметр label=, мы можем автоматически создать легенду для нашего графика. Код выше возвращает изображение ниже:

Заключение

В этом руководстве вы узнали, как использовать Pandas для создания диаграммы рассеяния. Вы узнали, как использовать функцию .plot() для создания базовой диаграммы рассеяния. Затем вы узнали, как настраивать цвет диаграммы, добавлять заголовки и метки осей, изменять размер точек и добавлять несколько разных меток данных.

Дополнительные ресурсы

Чтобы узнать больше по смежным темам, ознакомьтесь с приведенными ниже руководствами:

Last updated