> ## Documentation Index
> Fetch the complete documentation index at: https://iyree.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# Круговые диаграммы (Pie)

> Круговые и кольцевые диаграммы

<img src="https://mintcdn.com/iyree/k8VfyfyiOthBr5L4/assets/img/charts/pie/pie_example.png?fit=max&auto=format&n=k8VfyfyiOthBr5L4&q=85&s=8265054141f9a10ff9d69bc20d07cf6f" width="600" alt="Пример Pie графика" data-path="assets/img/charts/pie/pie_example.png" />

Поддерживает как круговой (pie), так и кольцевой (donut) вид, а также иерархии с drill-down.

### Поля

<ResponseField name="type" type="&#x22;pie&#x22;" required>
  Тип графика
</ResponseField>

<ResponseField name="display_type" type="enum" default="pie">
  Вид диаграммы

  <Expandable title="Значения">
    | Значение | Описание                           |
    | -------- | ---------------------------------- |
    | `pie`    | Круговая диаграмма (заполненная)   |
    | `donut`  | Кольцевая диаграмма (с отверстием) |
  </Expandable>
</ResponseField>

<ResponseField name="measure" type="PieMeasure">
  Основная мера. Используйте либо `measure`, либо `selectable_measure`.

  <Expandable title="Структура PieMeasure">
    <ResponseField name="measure" type="string" required>
      Имя меры из куба
    </ResponseField>

    <ResponseField name="title" type="string">
      Заголовок
    </ResponseField>

    <ResponseField name="data_point_actions" type="DataPointActionDefinition[]">
      Действия при клике на сектор

      <Expandable title="Структура DataPointActionDefinition">
        <ResponseField name="id" type="string" required>
          UUID действия
        </ResponseField>

        <ResponseField name="key" type="string" required>
          Ключ: `common:copy_value` | `common:view_raw_data` | `link:open` | `dashboard:drill_through` | `dashboard:another_dashboard_drill_through`
        </ResponseField>

        <ResponseField name="title" type="string" required>
          Текст в меню
        </ResponseField>

        <ResponseField name="icon" type="IconReference">
          Иконка
        </ResponseField>

        <ResponseField name="placement" type="DataPointActionPlacement">
          Настройки размещения в меню

          <Expandable title="Структура DataPointActionPlacement">
            <ResponseField name="menu_path" type="string[]">
              Путь в подменю, например `["Team", "More..."]`
            </ResponseField>

            <ResponseField name="group" type="DataPointActionPlacementGroup">
              Группа действия (разделители между группами)
            </ResponseField>

            <ResponseField name="order" type="int">
              Порядок в группе/подменю
            </ResponseField>
          </Expandable>
        </ResponseField>

        <ResponseField name="target_page_id" type="string">
          UUID целевой страницы (для drill\_through)
        </ResponseField>

        <ResponseField name="target_dashboard_id" type="string">
          UUID целевого дашборда (для another\_dashboard\_drill\_through)
        </ResponseField>

        <ResponseField name="filter_mappings" type="DrillThroughFilterMapping[]">
          Маппинг фильтров
        </ResponseField>

        <ResponseField name="url" type="string">
          URL для link:open
        </ResponseField>

        <ResponseField name="open_in" type="enum">
          `same_tab` | `new_tab` (для link:open)
        </ResponseField>

        <ResponseField name="open_in_new_tab" type="boolean">
          Открыть в новой вкладке (для another\_dashboard\_drill\_through)
        </ResponseField>
      </Expandable>
    </ResponseField>
  </Expandable>

  ```yaml theme={null}
  measure:
    measure: sales.revenue
    title: Выручка
  ```
</ResponseField>

<ResponseField name="selectable_measure" type="SingleSelectableField[PieMeasure]">
  Выбираемая основная мера

  <Expandable title="Структура">
    ```yaml theme={null}
    selectable_measure:
      type: single
      hint: Выберите показатель
      options:
        - measure: sales.revenue
          title: Выручка
        - measure: sales.quantity
          title: Количество
    ```
  </Expandable>
</ResponseField>

<ResponseField name="dimension" type="PieDimension">
  Основное измерение (сегменты). Используйте либо `dimension`, либо `selectable_dimension`.

  <Expandable title="Типы PieDimension">
    ### Простое измерение (PieBasicDimension)

    <ResponseField name="type" type="&#x22;dimension&#x22;" default="dimension">
      Тип
    </ResponseField>

    <ResponseField name="dimension" type="CubeDimension" required>
      Измерение из куба

      <Expandable title="Структура CubeDimension">
        **Обычное измерение:**

        ```yaml theme={null}
        kind: basic
        value: products.category
        ```

        **Временное измерение:**

        ```yaml theme={null}
        kind: time
        value:
          dimension: sales.created_at
          granularity: quarter
        ```
      </Expandable>
    </ResponseField>

    <ResponseField name="title" type="string">
      Заголовок
    </ResponseField>

    ***

    ### Иерархия измерений (drill-down)

    <ResponseField name="type" type="&#x22;dimension_hierarchy&#x22;" required>
      Тип
    </ResponseField>

    <ResponseField name="levels" type="Pie2DimensionHierarchyLevel[]" required>
      Уровни иерархии

      <Expandable title="Структура Pie2DimensionHierarchyLevel">
        <ResponseField name="member" type="CubeDimension" required>
          Измерение уровня
        </ResponseField>

        <ResponseField name="title" type="string">
          Заголовок уровня
        </ResponseField>
      </Expandable>

      ```yaml theme={null}
      levels:
        - member:
            kind: basic
            value: geography.region
          title: Регион
        - member:
            kind: basic
            value: geography.city
          title: Город
      ```
    </ResponseField>
  </Expandable>

  ```yaml theme={null}
  dimension:
    dimension:
      kind: basic
      value: products.category
    title: Категория
  ```
</ResponseField>

<ResponseField name="selectable_dimension" type="SingleSelectableField[PieBasicDimension]">
  Выбираемое основное измерение (только простые измерения, не иерархии)

  <Expandable title="Структура">
    ```yaml theme={null}
    selectable_dimension:
      type: single
      hint: Выберите разрез
      options:
        - dimension:
            kind: basic
            value: products.category
          title: По категориям
        - dimension:
            kind: basic
            value: products.brand
          title: По брендам
    ```
  </Expandable>
</ResponseField>

<ResponseField name="colors" type="PieColorOptions">
  Настройки цветов

  <Expandable title="Структура PieColorOptions">
    <ResponseField name="palette_name" type="string" required>
      Имя цветовой палитры
    </ResponseField>

    <ResponseField name="values" type="Dict[string, string]">
      HEX-цвета для конкретных значений измерения
    </ResponseField>
  </Expandable>

  ```yaml theme={null}
  colors:
    palette_name: custom
    values:
      "Электроника": "#3B82F6"
      "Одежда": "#10B981"
      "Продукты": "#F59E0B"
  ```
</ResponseField>

<ResponseField name="label" type="PieLabelOptions">
  Настройки меток на секторах

  <Expandable title="Структура PieLabelOptions">
    <ResponseField name="show" type="boolean" required>
      Показать метки
    </ResponseField>

    <ResponseField name="position" type="enum" required>
      Позиция меток: `inside` | `outside`
    </ResponseField>

    <ResponseField name="show_values" type="boolean">
      Показать значения меры
    </ResponseField>

    <ResponseField name="show_percentages" type="boolean">
      Показать процент от общего
    </ResponseField>

    <ResponseField name="show_dimension_values" type="boolean">
      Показать значение измерения (название категории)
    </ResponseField>

    <ResponseField name="percentage_threshold" type="float">
      Минимальный порог процента для отображения метки
    </ResponseField>
  </Expandable>

  ```yaml theme={null}
  label:
    show: true
    position: outside
    show_values: true
    show_percentages: true
    show_dimension_values: true
    percentage_threshold: 5.0
  ```
</ResponseField>

<ResponseField name="legend" type="PieLegendOptions">
  Настройки легенды

  <Expandable title="Структура PieLegendOptions">
    <ResponseField name="show" type="boolean" required>
      Показать легенду
    </ResponseField>

    <ResponseField name="type" type="enum" required>
      Тип легенды: `compact` | `detailed`
    </ResponseField>

    <ResponseField name="truncate_item_chars" type="int">
      Максимальное количество символов для обрезки названий элементов
    </ResponseField>
  </Expandable>

  ```yaml theme={null}
  legend:
    show: true
    type: detailed
    truncate_item_chars: 20
  ```
</ResponseField>

<ResponseField name="sorting" type="PieSorting">
  Настройки сортировки секторов
</ResponseField>

<ResponseField name="show_totals" type="boolean" default="false">
  Показать итоговое значение
</ResponseField>

<ResponseField name="compare_period_enabled" type="boolean" default="false">
  Сравнение периодов
</ResponseField>

### Примеры

<CodeGroup>
  ```yaml Простая круговая theme={null}
  type: pie
  display_type: pie
  dimension:
    dimension:
      kind: basic
      value: products.category
    title: Категория
  measure:
    measure: sales.revenue
    title: Выручка
  ```

  ```yaml Кольцевая (donut) с цветами theme={null}
  type: pie
  display_type: donut
  dimension:
    dimension:
      kind: basic
      value: products.category
    title: Категория
  measure:
    measure: sales.revenue
    title: Выручка
  colors:
    palette_name: categories
    values:
      "Электроника": "#3B82F6"
      "Одежда": "#10B981"
      "Продукты": "#F59E0B"
      "Прочее": "#9CA3AF"
  label:
    show: true
    position: outside
    show_percentages: true
    show_dimension_values: true
  legend:
    show: true
    type: detailed
  ```

  ```yaml С иерархией (drill-down) theme={null}
  type: pie
  display_type: pie
  dimension:
    type: dimension_hierarchy
    levels:
      - member:
          kind: basic
          value: geography.region
        title: Регион
      - member:
          kind: basic
          value: geography.city
        title: Город
      - member:
          kind: basic
          value: stores.name
        title: Магазин
  measure:
    measure: sales.revenue
    title: Выручка
    data_point_actions:
      - id: "f47ac10b-58cc-4372-a567-0e02b2c3d479"
        key: "common:view_raw_data"
        title: "Исходные данные"
  ```

  ```yaml С выбираемыми полями theme={null}
  type: pie
  display_type: donut

  selectable_dimension:
    type: single
    hint: Разрез
    options:
      - dimension:
          kind: basic
          value: products.category
        title: По категориям
      - dimension:
          kind: basic
          value: products.brand
        title: По брендам
      - dimension:
          kind: basic
          value: managers.name
        title: По менеджерам

  selectable_measure:
    type: single
    hint: Показатель
    options:
      - measure: sales.revenue
        title: Выручка
      - measure: sales.quantity
        title: Количество
      - measure: orders.count
        title: Заказы

  legend:
    show: true
    type: compact
  ```

  ```yaml С действиями (drill-through) theme={null}
  type: pie
  display_type: pie
  dimension:
    dimension:
      kind: basic
      value: products.category
    title: Категория
  measure:
    measure: sales.revenue
    title: Выручка
    data_point_actions:
      - id: "f47ac10b-58cc-4372-a567-0e02b2c3d479"
        key: "dashboard:drill_through"
        title: "Товары категории"
        target_page_id: "a1b2c3d4-5678-90ab-cdef-1234567890ab"
        filter_mappings:
          - target_filter_id: "b2c3d4e5-6789-01bc-def0-234567890abc"
            sources:
              - type: data_point_dimension
                member_name: products.category
  ```

  ```yaml С итогами и сортировкой theme={null}
  type: pie
  display_type: donut
  dimension:
    dimension:
      kind: basic
      value: products.category
    title: Категория
  measure:
    measure: sales.revenue
    title: Выручка
  show_totals: true
  label:
    show: true
    position: inside
    show_values: true
    show_percentages: false
    percentage_threshold: 3.0
  legend:
    show: true
    type: detailed
    truncate_item_chars: 15
  ```
</CodeGroup>

***

## См. также

<CardGroup cols={2}>
  <Card title="Иерархии измерений" icon="sitemap" href="../features/dimension-hierarchy">
    Drill-down в диаграммах
  </Card>

  <Card title="Действия с данными" icon="mouse-pointer-click" href="../features/data-point-actions">
    Клики и drill-through
  </Card>

  <Card title="Выбираемые поля" icon="list-check" href="../features/selectable-fields">
    Динамический выбор
  </Card>
</CardGroup>

***

← [Столбчатые диаграммы](./bar) | → [Динамические графики](./dynamic)
