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

В этом руководстве **вы научитесь использовать Pandas для создания точечных диаграмм**. В действительности Pandas [использует Matplotlib](https://bemind.gitbook.io/neural/uchebniki-matplotlib-i-seaborn/matplotlib/postroenie-grafikov-v-python-s-pomoshyu-matplotlib), что может сделать настройку вашего графика знакомой задачей. Pandas позволяет настраивать точечную диаграмму, изменяя цвета, добавляя заголовки и многое другое. В последних версиях Pandas добавлена возможность использования различных движков для построения графиков. В этом руководстве мы рассмотрим использование Matplotlib по умолчанию, хотя большая часть руководства может применяться и к другим движкам.

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

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

* Загрузка образца DataFrame в Pandas
* Как создать диаграмму разброса
* Как настроить цвета на точечной диаграмме
* Как добавить заголовки на точечную диаграмму
* Как изменить размер точек на точечной диаграмме
* Как изменить цвета оттенков на диаграммах рассеяния Pandas

Содержание

* [Загрузка образца DataFrame Pandas](#zagruzka-obrazca-dataframe-pandas)
* [Как построить точечную диаграмму в Pandas](#kak-postroit-tochechnuyu-diagrammu-v-pandas)
* [Настройка цветов на точечной диаграмме в Pandas](#nastroika-cvetov-na-tochechnoi-diagramme-v-pandas)
* [Добавьте заголовки к своей диаграмме рассеяния Pandas](#dobavte-zagolovki-k-svoei-diagramme-rasseyaniya-pandas)
* [Измените размер точек на диаграмме рассеяния Pandas](#izmenite-razmer-tochek-na-diagramme-rasseyaniya-pandas)
* [Добавьте несколько цветов в диаграмму рассеяния Pandas](#dobavte-neskolko-cvetov-v-diagrammu-rasseyaniya-pandas)
* [Заключение](#zaklyuchenie)
* [Дополнительные ресурсы](#dopolnitelnye-resursy)

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

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

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

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

```python
# Функция 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 с использованием функции

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

plt.show()
```

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

<figure><img src="https://3188902851-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FZ8ZgobqrSJWaGpehFarf%2Fuploads%2FfgV6k72PFucZnFjgxFOt%2F01-First-Scatter-Plot-in-Pandas.png?alt=media&#x26;token=3390943a-1cee-437f-a7b4-fd3814bf8659" alt=""><figcaption><p>Создание простой диаграммы рассеяния в Pandas</p></figcaption></figure>

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

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

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

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

plt.show()
```

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

<figure><img src="https://3188902851-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FZ8ZgobqrSJWaGpehFarf%2Fuploads%2FgqBsN1AW9jKb3YIyhmSt%2F02-Changing-the-Color-of-your-Pandas-Scatterplot.png?alt=media&#x26;token=cb77a24e-feb8-4a45-bebb-56f5aed9a38a" alt=""><figcaption><p>Изменение цвета диаграммы рассеяния Pandas</p></figcaption></figure>

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

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

* `title=` принимает строку и устанавливает заголовок
* `xlabel=` принимает строку и задает заголовок оси x
* `ylabel=` принимает строку и задает заголовок ярлыка по оси y

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

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

plt.show()
```

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

<figure><img src="https://3188902851-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FZ8ZgobqrSJWaGpehFarf%2Fuploads%2Fq2oye26cZBx9pE82TPPc%2F03-Adding-titles-to-a-Pandas-Scatter-Plot.png?alt=media&#x26;token=6cdc6ea3-7950-46ca-a4ae-eb3f4da6aee7" alt=""><figcaption><p>Добавление заголовка и меток осей к точечной диаграмме в Pandas</p></figcaption></figure>

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

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

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

```python
# Изменение размера точек диаграммы рассеяния
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()
```

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

<figure><img src="https://3188902851-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FZ8ZgobqrSJWaGpehFarf%2Fuploads%2FJwS0E22091txkHjpOVU7%2F04-Changing-the-size-of-a-Pandas-scatter-plot-points.png?alt=media&#x26;token=def93bac-ea53-41ba-b626-081c58fd13b6" alt=""><figcaption><p>Изменение размера точек на диаграмме рассеяния Pandas</p></figcaption></figure>

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

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

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

```python
# Добавление нескольких меток данных
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=`, мы можем автоматически создать легенду для нашего графика. Код выше возвращает изображение ниже:

<figure><img src="https://3188902851-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FZ8ZgobqrSJWaGpehFarf%2Fuploads%2FQvDizzrmxsC4LdyteHJK%2F05-Plotting-Multiple-Colors-in-a-Pandas-Scatter-Plot.png?alt=media&#x26;token=186eea49-5e52-4fdb-9cac-1d03d42c8a4b" alt=""><figcaption><p>Добавление нескольких меток данных на диаграмму рассеяния Pandas</p></figcaption></figure>

### Заключение

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

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

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

* [Построение графиков на Python с помощью Matplotlib](https://bemind.gitbook.io/neural/uchebniki-matplotlib-i-seaborn/matplotlib/postroenie-grafikov-v-python-s-pomoshyu-matplotlib)
* Seaborn на Python для визуализации данных
* [Построение гистограммы в Python с помощью Matplotlib и Pandas](https://bemind.gitbook.io/neural/uchebniki-matplotlib-i-seaborn/matplotlib/postroenie-grafikov-v-python-s-pomoshyu-matplotlib)
* Диаграммы рассеяния Matplotlib – узнайте все, что вам нужно знать
