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 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 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 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 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 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 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 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 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 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()
Вывод:
