# ピボットグラフ

- Human documentation: [https://docs.univer.ai/ja-JP/guides/sheets/features/pivot-chart](https://docs.univer.ai/ja-JP/guides/sheets/features/pivot-chart)

- Agent Markdown: [https://docs.univer.ai/ja-JP/guides/sheets/features/pivot-chart.md](https://docs.univer.ai/ja-JP/guides/sheets/features/pivot-chart.md)

- Requested language: `ja-JP`

- Content language: `ja-JP`

- Documentation version: `1.1.0`

- Source: [sheets/features/pivot-chart.ja-JP.mdx](https://github.com/dream-num/documentation/blob/dev/content/guides/sheets/features/pivot-chart.ja-JP.mdx)

---

[ピボットテーブル](https://docs.univer.ai/ja-JP/guides/sheets/features/pivot-table.md)と[グラフ](https://docs.univer.ai/ja-JP/guides/sheets/features/charts.md)の依存関係を登録した後、ブック作成前に次のプラグインを追加します。UI ロケールを `locales` にマージし、CSS を読み込みます。Pro ライセンスが必要です。

#### npm

```bash
npm install @univerjs-pro/sheets-pivot-chart @univerjs-pro/sheets-pivot-chart-ui
```

#### pnpm

```bash
pnpm add @univerjs-pro/sheets-pivot-chart @univerjs-pro/sheets-pivot-chart-ui
```

#### yarn

```bash
yarn add @univerjs-pro/sheets-pivot-chart @univerjs-pro/sheets-pivot-chart-ui
```

#### bun

```bash
bun add @univerjs-pro/sheets-pivot-chart @univerjs-pro/sheets-pivot-chart-ui
```

```ts
import { UniverSheetsPivotChartPlugin } from '@univerjs-pro/sheets-pivot-chart'
import { UniverSheetsPivotChartUIPlugin } from '@univerjs-pro/sheets-pivot-chart-ui'
import SheetsPivotChartLocale from '@univerjs-pro/sheets-pivot-chart-ui/locale/ja-JP'
import { LocaleType } from '@univerjs/core'

import '@univerjs-pro/sheets-pivot-chart/facade'
import '@univerjs-pro/sheets-pivot-chart-ui/lib/index.css'

univerAPI.loadLocales(LocaleType.JA_JP, SheetsPivotChartLocale)

univer.registerPlugin(UniverSheetsPivotChartPlugin)
univer.registerPlugin(UniverSheetsPivotChartUIPlugin)
```

Sheets Advanced プリセットには両プラグインが含まれます。Core と Drawing プリセットを併用し、API 用に `@univerjs-pro/sheets-pivot-chart/facade` を明示的にインポートしてください。

## 独立したレポート

グラフ自身がレポートを所有します。挿入後に行フィールドと値フィールドを追加します。例ではデータの先頭 2 列を使用します。

```ts
const workbook = univerAPI.getActiveWorkbook()
const sheet = workbook?.getActiveSheet()
if (!sheet) throw new Error('No active worksheet')

sheet.getRange('A1:B4').setValues([
  ['Region', 'Sales'], ['East', 100], ['West', 200], ['East', 50],
])
const chart = await sheet.insertPivotChart(
  sheet.newPivotChart(univerAPI.Enum.ChartTypeString.Column)
    .setSource('A1:B4').setPosition('D2').setSize(640, 360).build(),
)
const fields = chart.getSourceFieldsInfo()
await chart.addField(fields[0].id, univerAPI.Enum.PivotTableFiledAreaEnum.Row, 0)
await chart.addField(fields[1].id, univerAPI.Enum.PivotTableFiledAreaEnum.Value, 0)
```

## ピボットテーブルとの連携

フィールド、フィルター、並べ替え、折りたたみは参照先のテーブルと他の連携グラフで共有されます。外観と位置は独立しています。グラフの削除はテーブルを削除しません。テーブルを削除するとグラフは使用不可になり、同じテーブルを復元すると再接続します。

```ts
const pivotTable = workbook.getPivotTableById('pivot-table-1')
if (!pivotTable) throw new Error('PivotTable not found')

const linkedChart = await sheet.insertPivotChart(
  pivotTable.newChart(univerAPI.Enum.ChartTypeString.Line).setPosition('D22').build(),
)
linkedChart.setFieldButtonsVisible(true).setExpandCollapseButtonsVisible(true)
```

## 対応する種類と Worker

折れ線、縦棒、横棒、面、円、ドーナツ、複合グラフと対応する積み上げ形式を利用できます。散布図、バブル、レーダー、ウォーターフォールには対応しません。円は最初の値系列、ドーナツは複数系列を使用します。小計と総計はカテゴリに含まれません。

[Worker](https://docs.univer.ai/ja-JP/guides/sheets/getting-started/worker.md) 使用時はメイン側で `UniverSheetsAdvancedPreset({ useWorker: true })`、Worker 側で `UniverSheetsAdvancedWorkerPreset()` を使用します。[パッケージ設定](https://docs.univer.ai/ja-JP/reference/packages/plugins/univerjs-pro/sheets-pivot-chart.md#worker-calculation)と [FSheetPivotChart](https://docs.univer.ai/ja-JP/reference/facade/sheet-pivot-chart.md) も参照してください。

## ワークシートのコピーと削除

シートのコピー時にピボットグラフも新しい ID でコピーされます。独立レポートのデータ元がコピー対象のシート内にある場合、新しいシートと独立したキャッシュを使用します。連携グラフは一緒にコピーされたピボットテーブルを参照し、別シートへの参照は維持します。シートの削除時にはグラフと関連リソースを削除し、元に戻すと定義と元データを復元します。
