Построить несколько catplot из датафрейма

Вопрос или проблема

У меня есть датафрейм, и я хочу построить несколько категориальных графиков. Я хочу использовать цикл, но не знаю, как его реализовать. Есть примеры?

{
DF = pd.DataFrame(feat[["click", "hour", "banner_pos", "site_category", "app_category"]])

sb.catplot( data =DF, y ="banner_pos", hue="click", kind = "count", palette="pastel", edgecolor=".6", height= 4)

sb.catplot( data =DF, y ="hour", hue="click", kind = "count", palette="pastel", edgecolor=".6", height= 4  )

sb.catplot( data =DF, y ="site_category", hue="click", kind = "count", palette="pastel", edgecolor=".6", height= 4  )

sb.catplot( data =DF, y ="app_category", hue="click", kind = "count", palette="pastel", edgecolor=".6", height= 4  )
}

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

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

columns =["click", "hour", "banner_pos", "site_category", "app_category"]

df = pd.DataFrame(feat[columns])

fig, ax = plt.subplots(2,2, figsize = (12,7))

k:int =1
for i in range(2):
    for j in range(2):
        sns.catplot(data =df, y =columns[k], hue="click", kind = "count", palette="pastel", edgecolor=".6", height= 4, ax = ax[i,j])
        ax[i,j].set_title(f"{columns[k]}")
        k+=1
plt.tight_layout()

Ответ или решение

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

Динамическое построение графиков с помощью цикла

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

Пример кода

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

# Предположим, что у вас уже есть DataFrame 'feat', и вы выбираете необходимые колонки.
columns = ["click", "hour", "banner_pos", "site_category", "app_category"]
df = pd.DataFrame(feat[columns])

# Определяем количество нужных подграфиков
num_plots = len(columns) - 1  # Вычитаем одну колонку 'click', так как это наша целевая переменная

# Создаем фигуру для нескольких подграфиков
fig, axes = plt.subplots(num_plots, 1, figsize=(10, num_plots * 4))

# Перебираем колонки и строим графики
for index, column in enumerate(columns[1:]):  # Пропускаем 'click', так как она выступает в роли хью
    sns.countplot(data=df, x=column, hue='click', palette='pastel', edgecolor='.6', ax=axes[index])
    axes[index].set_title(f'График для {column}')

# Подгоняем компоновку под графики
plt.tight_layout()
plt.show()

Объяснение кода

  1. Импорт библиотек: мы начинаем с импорта необходимых библиотек — pandas для работы с данными, seaborn для визуализации и matplotlib.pyplot для управления графиками.

  2. В создание DataFrame: мы создаём DataFrame из существующего объекта feat, содержащего интересующие нас колонки.

  3. Инициализация подграфиков: мы используем plt.subplots() для создания отдельной фигуры для каждого из графиков. Количество строк определяется количеством колонок данных, которые мы хотим визуализировать (в данном случае, это все, кроме колонки click).

  4. Цикл для построения графиков: в цикле for мы проходим по колонкам, которые нас интересуют, и создаём график с sns.countplot(). Мы используем hue='click' для разделения данных по значению клика.

  5. Настройка заголовков: каждому графику задаётся заголовок с помощью метода set_title().

  6. Отображение графиков: последняя часть кода подгоняет компоновку графиков, чтобы избежать наложения, и выводит их на экран с помощью plt.show().

Заключение

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

Оцените материал
Добавить комментарий

Капча загружается...