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

В этом руководстве **вы научитесь использовать Pandas для создания точечной диаграммы**. В основе своей Pandas [использует Matplotlib](https://datagy.io/python-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

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

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

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

```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, используя функцию `.plot()`

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

plt.show()
```
{% endtab %}

{% tab title="Результат выполнения" %}
<figure><img src="https://files.gitbook.com/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FZ8ZgobqrSJWaGpehFarf%2Fuploads%2FZsQ51KTrMuZZKdKDVONa%2FFigure_1.png?alt=media&#x26;token=2166e48c-f5b6-4dac-a3ba-45974e4ad71e" alt=""><figcaption><p>Создание простой диаграммы рассеяния в Pandas</p></figcaption></figure>
{% endtab %}
{% endtabs %}

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

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

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

{% tabs %}
{% tab title="Код" %}
```python
# Изменение цвета нашей диаграммы рассеяния
df.plot(
   x='x', 
   y='y', 
   kind='scatter', 
   c='cornflowerblue'
)

plt.show()
```
{% endtab %}

{% tab title="Результат выполнения" %}
<figure><img src="https://files.gitbook.com/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FZ8ZgobqrSJWaGpehFarf%2Fuploads%2Fits3jo9z4C8XNc3UxCAH%2FFigure_1_Changing%20the%20color%20of%20a%20Pandas%20scatter%20plot.png?alt=media&#x26;token=a3d5d395-3cfe-4897-80b8-fcc3cf81e29b" alt=""><figcaption><p>Изменение цвета диаграммы рассеяния Pandas</p></figcaption></figure>
{% endtab %}
{% endtabs %}

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

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

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

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

{% tabs %}
{% tab title="Код" %}
```python
# Добавление заголовков к диаграмме рассеяния в Pandas
df.plot(
    x='x', 
    y='y', 
    kind='scatter', 
    c='cornflowerblue',
    title='Создание диаграммы рассеяния в Pandas',
    xlabel='Название нашей оси x',
    ylabel='Название нашей оси y'
)

plt.show()
```
{% endtab %}

{% tab title="Результат выполнения" %}
<figure><img src="https://files.gitbook.com/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FZ8ZgobqrSJWaGpehFarf%2Fuploads%2F5IHOo4cWMW1vg4oAWDU7%2FFigure_1_%D0%94%D0%BE%D0%B1%D0%B0%D0%B2%D0%BB%D0%B5%D0%BD%D0%B8%D0%B5%20%D0%B7%D0%B0%D0%B3%D0%BE%D0%BB%D0%BE%D0%B2%D0%BA%D0%B0%20%D0%B8%20%D0%BC%D0%B5%D1%82%D0%BE%D0%BA%20%D0%BE%D1%81%D0%B5%D0%B9%20%D0%BA%20%D1%82%D0%BE%D1%87%D0%B5%D1%87%D0%BD%D0%BE%D0%B9%20%D0%B4%D0%B8%D0%B0%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%B5%20%D0%B2%20Pandas.png?alt=media&#x26;token=b1a20a71-ed01-4272-9fda-eff2ab086749" alt=""><figcaption><p>Добавление заголовка и меток осей к точечной диаграмме в Pandas</p></figcaption></figure>
{% endtab %}
{% endtabs %}

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

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

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

{% tabs %}
{% tab title="Код" %}
```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()
```
{% endtab %}

{% tab title="Результат выполнения" %}
<figure><img src="https://files.gitbook.com/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FZ8ZgobqrSJWaGpehFarf%2Fuploads%2FFNYyoFz4tZiUtxUGVo1w%2FFigure_1_%D0%98%D0%B7%D0%BC%D0%B5%D0%BD%D0%B5%D0%BD%D0%B8%D0%B5%20%D1%80%D0%B0%D0%B7%D0%BC%D0%B5%D1%80%D0%B0%20%D1%82%D0%BE%D1%87%D0%B5%D0%BA%20%D0%BD%D0%B0%20%D0%B4%D0%B8%D0%B0%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%B5%20%D1%80%D0%B0%D1%81%D1%81%D0%B5%D1%8F%D0%BD%D0%B8%D1%8F%20Pandas.png?alt=media&#x26;token=ab82c5ef-e130-451e-901b-e919c2bd9b7f" alt=""><figcaption><p>Изменение размера точек на диаграмме рассеяния Pandas</p></figcaption></figure>
{% endtab %}
{% endtabs %}

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

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

{% tabs %}
{% tab title="Код" %}
```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()
```
{% endtab %}

{% tab title="Результат выполнения" %}
<figure><img src="https://files.gitbook.com/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FZ8ZgobqrSJWaGpehFarf%2Fuploads%2FZRGAfIRZ5Jf7VLAgeNsG%2FFigure_1_%D0%94%D0%BE%D0%B1%D0%B0%D0%B2%D0%BB%D0%B5%D0%BD%D0%B8%D0%B5%20%D0%BD%D0%B5%D1%81%D0%BA%D0%BE%D0%BB%D1%8C%D0%BA%D0%B8%D1%85%20%D0%BC%D0%B5%D1%82%D0%BE%D0%BA%20%D0%B4%D0%B0%D0%BD%D0%BD%D1%8B%D1%85%20%D0%BD%D0%B0%20%D0%B4%D0%B8%D0%B0%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D1%83%20%D1%80%D0%B0%D1%81%D1%81%D0%B5%D1%8F%D0%BD%D0%B8%D1%8F%20Pandas.png?alt=media&#x26;token=7e912c75-57a9-45eb-a1a3-bb35977a8491" alt=""><figcaption><p>Добавление нескольких меток данных на диаграмму рассеяния Pandas</p></figcaption></figure>
{% endtab %}
{% endtabs %}

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

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

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

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

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

* Построение графиков на Python с помощью Matplotlib
* Seaborn на Python для визуализации данных
* Построение гистограммы в Python с помощью Matplotlib и Pandas
* [Диаграммы рассеяния Matplotlib](kak-sozdat-3d-diagrammy-rasseyaniya-v-matplotlib) – узнайте все, что вам нужно знать
