Визуализация данных с помощью Matplotlib и Seaborn

Привет! Сегодня я хочу поделиться своим опытом визуализации данных на Python с помощью двух мощных библиотек - Matplotlib и Seaborn. Эти инструменты позволяют создавать красивые и информативные графики, которые помогают лучше понять и проанализировать данные.

Визуализация данных с помощью Matplotlib и Seaborn
Краткое содержание

Matplotlib - это фундаментальная библиотека для визуализации данных в Python. Она предоставляет широкий набор функций для создания разнообразных графиков - линейных, столбчатых, круговых, 3D и многих других.

Seaborn - это библиотека более высокого уровня, построенная поверх Matplotlib. Она упрощает создание привлекательных статистических графиков, таких как диаграммы рассеяния (scatterplots), гистограммы, диаграммы размаха (boxplots) и многие другие.

Подготовка данных

Прежде чем приступить к визуализации, нужно подготовить данные. Обычно данные загружаются из файлов CSV, Excel, баз данных. Я предпочитаю использовать библиотеку Pandas для работы с табличными данными в Python.

Допустим, у нас есть файл данных "mtcars.csv". Загрузим его в Pandas DataFrame:

import pandas as pd

data = pd.read_csv("mtcars.csv")

Теперь можно приступать к визуализации данных из фрейма data.

Базовые графики Matplotlib

Начнем с простых графиков, используя Matplotlib. Импортируем pyplot:

import matplotlib.pyplot as plt

Нарисуем график синуса и косинуса:

import numpy as np

phi = np.linspace(0, 2*np.pi, 100)
plt.plot(phi, np.sin(phi), label='sin')  
plt.plot(phi, np.cos(phi), label='cos')
plt.legend()
plt.show()

Мы создали 100 точек на интервале от 0 до 2π, вычислили значения синуса и косинуса и построили их графики функцией plt.plot(). Легенда добавляется командой plt.legend()

Статистические графики Seaborn

Теперь посмотрим, как Seaborn может помочь в исследовательском анализе данных. Продолжим работать с фреймом данных data.

Построим диаграмму рассеяния (scatterplot) зависимости расхода топлива (mpg) от мощности (hp) с раскраской по числу цилиндров (cyl):

import seaborn as sns

sns.scatterplot(x='hp', y='mpg', data=data, hue='cyl', size='cyl')
plt.show()

Видно, что с ростом мощности расход топлива в целом уменьшается. При этом машины с бо́льшим числом цилиндров имеют больший расход.

Другой полезный тип графика - диаграмма размаха (boxplot). Построим boxplot распределения расхода топлива по числу цилиндров:

sns.boxplot(x='cyl', y='mpg', data=data)
plt.show()  

Диаграмма показывает медиану, квартили и выбросы. Хорошо видно, что 4-цилиндровые машины экономичнее 8-цилиндровых.

Для одновременного анализа попарных зависимостей между несколькими переменными удобно использовать матрицу диаграмм рассеяния (pairplot):

cols = ['mpg', 'disp', 'hp', 'wt'] 
sns.pairplot(data[cols])
plt.show()

По диагонали показаны гистограммы распределений отдельных признаков, а в остальных ячейках - попарные scatterplots.

Настройка стилей

Matplotlib и Seaborn предоставляют множество настроек для улучшения внешнего вида графиков. Например, можно легко изменить цветовую схему:

sns.set_style("darkgrid")
sns.scatterplot(x='wt', y='mpg', data=data)  

Или увеличить размер графика и шрифта:

plt.figure(figsize=(8, 6))
sns.set(font_scale=1.5)
sns.boxplot(x='cyl', y='mpg', data=data)

Как добавить подписи к графикам в Matplotlib?

Для добавления подписей к графикам в Matplotlib используется метод plt.text(). Этот метод позволяет размещать текстовые подписи в произвольных местах на графике.

Вот пример использования метода plt.text() для добавления подписи к точке (2, 3) на графике:

import matplotlib.pyplot as plt

plt.plot(2, 3, 'ro')  # рисуем красную точку в координатах (2, 3)
plt.text(2, 3, 'Важная точка', fontsize=12, ha='right')  # добавляем подпись 'Важная точка' рядом с точкой
plt.show()

В этом примере plt.text() размещает текстовую подпись 'Важная точка' рядом с точкой (2, 3) на графике.

Matplotlib и Seaborn - чрезвычайно мощные и гибкие инструменты визуализации данных в Python. Они позволяют создавать огромное разнообразие высококачественных графиков для любых задач анализа данных.

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

Подписаться на новости Nerd IT

Не пропустите последние выпуски. Зарегистрируйтесь сейчас, чтобы получить полный доступ к статьям.
jamie@example.com
Подписаться