Изучение визуализации данных: вафельные диаграммы и их реализация

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

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

Метод 1: использование Matplotlib в Python
Matplotlib — популярная библиотека визуализации данных в Python. Чтобы создать вафельную диаграмму с помощью Matplotlib, выполните следующие действия:

import matplotlib.pyplot as plt
def create_waffle_chart(categories, values, width, height, colormap):
    total_values = sum(values)
    proportions = [float(value) / total_values for value in values]
    num_tiles = width * height
    tiles_per_category = [round(proportion * num_tiles) for proportion in proportions]
    waffle_chart = np.zeros((height, width))
    category_index = 0
    tile_index = 0
    for col in range(width):
        for row in range(height):
            tile_index += 1
            if tile_index > sum(tiles_per_category[0:category_index]):
                category_index += 1
            waffle_chart[row, col] = category_index
    plt.figure(figsize=(10, 6))
    colormap = plt.cm.get_cmap(colormap, len(categories))
    plt.imshow(waffle_chart, cmap=colormap)
    legend_handles = []
    for i, category in enumerate(categories):
        legend_handles.append(plt.bar(0, 0, color=colormap(i), label=category))
    plt.legend(handles=legend_handles, loc='upper left')
    plt.axis('off')
    plt.show()
# Example usage
categories = ['Category A', 'Category B', 'Category C']
values = [15, 30, 55]
width = 10
height = 5
colormap = 'tab20b'
create_waffle_chart(categories, values, width, height, colormap)

Метод 2: использование R и пакета waffle.
Если вы предпочитаете работать с R, существует специальный пакет под названием waffle, который упрощает создание вафельных диаграмм.. Вот пример того, как создать вафельную диаграмму с помощью R:

install.packages("waffle")
library(waffle)
# Example usage
categories <- c('Category A', 'Category B', 'Category C')
values <- c(15, 30, 55)
waffle(values, rows = 10, colors = c('steelblue', 'skyblue', 'lightblue'),
       legend_pos = 'bottom', title = 'Waffle Chart Example',
       labels = categories)

Вафельные диаграммы — мощный инструмент для визуализации категориальных данных и сравнения частей целого. В этой статье мы рассмотрели два разных метода создания вафельных диаграмм с использованием Python и R. Эти примеры кода могут послужить отправной точкой для ваших проектов визуализации данных. Поэкспериментируйте с различными конфигурациями и настройте диаграммы в соответствии со своими потребностями.