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

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

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

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

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

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

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

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

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

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

Оглавление

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

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

# Загрузка примера DataFrame в Pandas
import pandas as pd
from matplotlib import pyplot as plt

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

print(df.head())

# Возвращает:
#           x         y   Метка
# 0  5.539907  2.780370  Средний
# 1  5.309798  3.342864   Большой
# 2  4.367271  4.551839   Большой
# 3  3.812863  2.447711   Большой
# 4  5.213783  5.133856   Большой

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

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

Чтобы создать диаграмму рассеивания в 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, используя функцию .plot()

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

plt.show()

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

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

Давайте посмотрим, как мы можем использовать цвет '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=. Чтобы передать в него столбец, нам нужен числовой столбец. Мы можем использовать функцию .map() Pandas для преобразования нашего столбца '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

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

# Добавление нескольких меток данных
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() для создания базовой диаграммы рассеяния. Затем вы научились настраивать цвет диаграммы, добавлять заголовки и метки осей, изменять размер точек и добавлять различные метки данных.

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

Чтобы узнать больше о связанных темах, ознакомьтесь с обучающими материалами ниже:

  • Построение графиков на Python с помощью Matplotlib

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

  • Построение гистограммы в Python с помощью Matplotlib и Pandas

  • Диаграммы рассеяния Matplotlib – узнайте все, что вам нужно знать

Last updated