Pandas: визуализация данных

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

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

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

В Pandas функциональность визуализации данных в основном реализована черезDataFrame.plot()иSeries.plot()методы. Эти методы фактически являются обёртками вокруг библиотеки Matplotlib, упрощающими процесс построения графиков.

Тип диаграммы Описание Метод
Линейный график Показывает тенденцию данных во времени или других непрерывных переменных df.plot(kind='line')
Столбчатая диаграмма Сравнивает данные по разным категориям df.plot(kind='bar')
Горизонтальная столбчатая диаграмма Сравнивает данные по разным категориям, но столбцы расположены горизонтально df.plot(kind='barh')
Гистограмма Отображает распределение данных df.plot(kind='hist')
Точечная диаграмма Показывает связь между двумя числовыми переменными df.plot(kind='scatter', x='col1', y='col2')
Ящичная диаграмма Отображает распределение данных, включая медиану, квартили и т. д. df.plot(kind='box')
График плотности Показывает плотность распределения данных df.plot(kind='kde')
Круговая диаграмма Показывает долю различных частей в целом df.plot(kind='pie')
Диаграмма с областями Показывает накопленные значения данных df.plot(kind='area')

Базовые функции и методы визуализации данных Pandas могут удовлетворить большинство повседневных потребностей в визуализации данных. Однако для создания более сложных визуализаций можно объединить Matplotlib и Seaborn для более тонкой настройки диаграмм.


I. Обзор визуализации данных в Pandas

Pandas предоставляетplot()методы, позволяющие легко строить различные типы диаграмм, включая линейные диаграммы, столбчатые диаграммы, гистограммы, диаграммы рассеяния и т. д.plot()Методы имеют множество параметров, позволяющих настраивать стиль диаграммы, цвета, подписи и т. д.

1. Основыplot()Методы

Параметр Описание
kind Тип диаграммы, поддерживает'line', 'bar', 'barh', 'hist', 'box', 'kde', 'density', 'area', 'pie'и другие типы
x Задает столбец данных для оси X
y Установите столбец данных для оси Y
title Заголовок диаграммы
xlabel Подпись оси X
ylabel Подпись оси Y
color Установите цвет диаграммы
figsize Установите размер диаграммы (ширина, высота)
legend Отображать ли легенду

2. Распространённые типы диаграмм

Тип диаграммы Описание Обычное использование
Линейный график Используется для отображения тенденций данных во времени df.plot(kind='line')
Столбчатая диаграмма Используется для отображения сравнительных данных между категориями df.plot(kind='bar')
Горизонтальная столбчатая диаграмма Похожа на столбчатую диаграмму, но столбцы горизонтальные df.plot(kind='barh')
Гистограмма Используется для отображения распределения данных (распределения частот) df.plot(kind='hist')
Точечная диаграмма Используется для отображения связи между двумя числовыми переменными df.plot(kind='scatter', x='col1', y='col2')
Ящичная диаграмма Используется для отображения распределения данных, выбросов и квартилей df.plot(kind='box')
График плотности Используется для отображения распределения плотности данных df.plot(kind='kde')
Круговая диаграмма Используется для отображения доли каждой части в целом df.plot(kind='pie')
Диаграмма с областями Используется для отображения накопленных значений (похоже на линейный график, но с цветной заливкой) df.plot(kind='area')

II. Примеры визуализации данных

1. Линейный график

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

Пример

import pandas as pd
import matplotlib.pyplot as plt

# Пример данных
data = {'Year': [2015, 2016, 2017, 2018, 2019, 2020],
        'Sales': [100, 150, 200, 250, 300, 350]}
df = pd.DataFrame(data)

# Построить линейный график
df.plot(kind='line', x='Year', y='Sales', title='Sales Over Years', xlabel='Year', ylabel='Sales', figsize=(10, 6))
plt.show()

Вывод:

2. Столбчатая диаграмма

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

Пример

import pandas as pd
import matplotlib.pyplot as plt

# Пример данных
data = {'Category': ['A', 'B', 'C', 'D'],
        'Значение': [10, 15, 7, 12]}
df = pd.DataFrame(data)

# Построить столбчатую диаграмму
df.plot(kind='bar', x='Category', y='Value', title='Category Values', xlabel='Category', ylabel='Value', figsize=(8, 5))
plt.show()

Вывод:

3. Диаграмма рассеяния

Диаграммы рассеяния используются для отображения связи между двумя числовыми переменными.

Пример

import pandas as pd
import matplotlib.pyplot as plt

# Пример данных
data = {'Height': [150, 160, 170, 180, 190],
        'Weight': [50, 60, 70, 80, 90]}
df = pd.DataFrame(data)

# Построить диаграмму рассеяния
df.plot(kind='scatter', x='Height', y='Weight', title='Height vs Weight', xlabel='Height (cm)', ylabel='Вес (kg)', figsize=(8, 5))
plt.show()

Вывод:

4. Гистограмма

Гистограммы используются для отображения распределения данных, особенно для описания частотного распределения данных.

Пример

import pandas as pd
import matplotlib.pyplot as plt

# Пример данных
data = {'Scores': [55, 70, 85, 90, 60, 75, 80, 95, 100, 65]}
df = pd.DataFrame(data)

# Построить гистограмму
df.plot(kind='hist', y='Scores', bins=5, title='Распределение Scores', xlabel='Scores', figsize=(8, 5))
plt.show()

Вывод:

5. Коробчатая диаграмма

Коробчатые диаграммы используются для отображения распределения данных, включая медиану, квартили и выбросы.

Пример

import pandas as pd
import matplotlib.pyplot as plt

# Пример данных
data = {'Scores': [55, 70, 85, 90, 60, 75, 80, 95, 100, 65]}
df = pd.DataFrame(data)

# Построить коробчатую диаграмму
df.plot(kind='box', title='Коробчатая диаграмма Scores', ylabel='Баллы', figsize=(8, 5))
plt.show()

Вывод:

6. Круговая диаграмма

Круговые диаграммы используются для отображения доли каждой части в целом.

Пример

import pandas as pd
import matplotlib.pyplot as plt

# Пример данных
data = {'Category': ['A', 'B', 'C', 'D'],
        'Значение': [10, 15, 7, 12]}
df = pd.DataFrame(data)

# Построить круговую диаграмму
df.plot(kind='pie', y='Value', labels=df['Category'], autopct='%1.1f%%', title='Пропорции категорий', figsize=(8, 5))
plt.show()

Вывод:


III. Визуализация Seaborn

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

В Pandas можно использовать Seaborn напрямую вместе с ней.

Тепловая карта:

Пример

import pandas as pd
import seaborn as sns
import matplotlib.pyplot as plt

# Пример данных
data = {'A': [1, 2, 3], 'B': [4, 5, 6], 'C': [7, 8, 9]}
df = pd.DataFrame(data)

# Построить тепловую карту
sns.heatmap(df.corr(), annot=True, cmap='coolwarm')
plt.show()

Вывод:

Матрица диаграмм рассеяния между всеми числовыми признаками в наборе данных:

Пример

import pandas as pd
import seaborn as sns
import matplotlib.pyplot as plt

# Пример данных
data = {'A': [1, 2, 3], 'B': [4, 5, 6], 'C': [7, 8, 9]}
df = pd.DataFrame(data)

sns.pairplot(df)
plt.show()

Вывод:


IV. Расширенная настройка Matplotlib

Помимо использования методов, предоставляемых Pandas,plot()Matplotlib также может предоставить более гибкие возможности настройки, такие как добавление заголовков, подписей, установка стилей графиков, настройка осей и т. д.

Пример

import pandas as pd
import seaborn as sns
import matplotlib.pyplot as plt

# Пример данных
data = {'Year': [2015, 2016, 2017, 2018, 2019],
        'Sales': [100, 150, 200, 250, 300]}
df = pd.DataFrame(data)

# Построить линейный график
plt.plot(df['Year'], df['Sales'], color='blue', marker='o')

# Настройка
plt.title('Продажи по годам')
plt.xlabel('Год')
plt.ylabel('Продажи')
plt.grid(True)

# Отображение
plt.show()

Вывод:

Другие расширения