Освоение сгруппированных гистограмм с двойной осью Y в Plotly: подробное руководство

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

Содержание:

  1. Настройка среды
  2. Создание базовой сгруппированной гистограммы
  3. Добавление второй оси Y
  4. Настройка графика
    4.1 Настройка ширины сгруппированных полос
    4.2 Форматирование меток осей
    4.3 Настройка диапазонов осей
  5. Улучшение визуализации
    5.1 Добавление меток данных
    5.2 Изменение цвета полос
    5.3 Выделение определенных полос
  6. Заключение

Раздел 1: Настройка среды
Прежде чем мы начнем, убедитесь, что у вас установлен Plotly и необходимые зависимости. Мы также импортируем необходимые библиотеки и настроим данные для нашей диаграммы.

# Importing the required libraries
import plotly.graph_objects as go
import numpy as np
# Setting up the data
categories = ['Category 1', 'Category 2', 'Category 3']
group1 = [10, 20, 30]
group2 = [15, 25, 35]

Раздел 2. Создание базовой сгруппированной гистограммы
Давайте начнем с создания базовой сгруппированной гистограммы без двойной оси Y. Мы будем использовать трассировку go.BarPlotly для определения наших столбцов и go.Figureдля объединения их в диаграмму.

# Creating the basic grouped bar chart
fig = go.Figure()
fig.add_trace(go.Bar(x=categories, y=group1, name='Group 1'))
fig.add_trace(go.Bar(x=categories, y=group2, name='Group 2'))
fig.show()

Раздел 3. Добавление второй оси Y
Чтобы реализовать функциональность двойной оси Y, нам необходимо определить дополнительную ось Y и связать ее с одной из групп полос. Для этого мы воспользуемся функцией make_subplotsиз модуля plotly.subplotsPlotly.

# Adding a second Y-axis
fig = go.Figure()
fig.add_trace(go.Bar(x=categories, y=group1, name='Group 1', yaxis='y'))
fig.add_trace(go.Bar(x=categories, y=group2, name='Group 2', yaxis='y2'))
fig.update_layout(yaxis2=dict(overlaying='y', side='right', title='Group 2'))
fig.show()

Раздел 4. Настройка графика
Теперь, когда у нас есть сгруппированная гистограмма с двойной осью Y, давайте рассмотрим различные варианты настройки, чтобы улучшить ее внешний вид и читабельность.

4.1 Настройка ширины сгруппированных полос
Мы можем настроить ширину сгруппированных полос, используя атрибуты bargapи widthэлемента update_layoutметод.

# Customizing bar width
fig.update_layout(bargroupgap=0.1, bargap=0.2)
fig.show()

4.2 Форматирование меток осей
Чтобы отформатировать метки на осях, мы можем использовать атрибут tickformatметода update_layout.

# Formatting axes labels
fig.update_layout(yaxis=dict(tickformat='d'), yaxis2=dict(tickformat='d'))
fig.show()

4.3 Настройка диапазонов осей
Если диапазоны осей по умолчанию не соответствуют нашим данным, мы можем вручную установить диапазоны, используя атрибут rangeметода update_layout.

# Adjusting axis ranges
fig.update_layout(yaxis=dict(range=[0, 40]), yaxis2=dict(range=[0, 50]))
fig.show()

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

5.1 Добавление меток данных
Мы можем отображать значения каждого столбца на диаграмме, используя атрибут textтрассировки go.Bar.

# Adding data labels
fig.add_trace(go.Bar(x=categories, y=group1, name='Group 1', yaxis='y', text=group1, textposition='auto'))
fig.add_trace(go.Bar(x=categories, y=group2, name='Group 2', yaxis='y2', text=group2, textposition='auto'))
fig.show()

5.2 Изменение цвета полос
Чтобы изменить цвета полос, мы можем использовать атрибут markerтрассы go.Bar.

# Changing bar colors
fig.add_trace(go.Bar(x=categories, y=group1, name='Group 1', yaxis='y', marker=dict(color='blue')))
fig.add_trace(go.Bar(x=categories, y=group2, name='Group 2', yaxis='y2', marker=dict(color='green')))
fig.show()

5.3 Выделение определенных полос
Мы можем выделить определенные полосы, настроив их цвет или ширину. Давайте выделим первый столбец в каждой группе.

# Highlighting specific bars
fig.add_trace(go.Bar(x=categories, y=group1, name='Group 1', yaxis='y', marker=dict(color='blue')))
fig.add_trace(go.Bar(x=categories, y=group2, name='Group 2', yaxis='y2', marker=dict(color='green')))
fig.update_traces(marker=dict(color=['yellow', 'lightgreen', 'lightblue']), width=[0.8, 0.8, 0.2])
fig.show()

Раздел 6. Заключение
В этом руководстве мы рассмотрели методы создания и настройки сгруппированных гистограмм с двумя осями Y с помощью Plotly. Мы научились настраивать среду, создавать базовые гистограммы, добавлять вторую ось Y и настраивать различные аспекты графика. Кроме того, мы улучшили визуализацию, добавив метки данных, изменив цвета столбцов и выделив определенные столбцы. Благодаря этим знаниям вы теперь можете создавать в Plotly визуально привлекательные и информативные сгруппированные гистограммы для своих проектов по анализу данных.

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

Не забудьте поэкспериментировать с различными вариантами настройки и раскрыть свой творческий потенциал для создания потрясающих визуализаций!