> ## Documentation Index
> Fetch the complete documentation index at: https://wb-21fd5541-update-reference-docs-40.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

> アプリの UI でインタラクティブに、または W&B SDK を使ってプログラムからレポートを編集します。

# レポートを編集する

<Note>
  W\&B Report and Workspace API はパブリックプレビューです。
</Note>

アプリの UI でインタラクティブに、または W\&B SDK を使ってプログラムからレポートを編集します。

Reports は *ブロック* で構成されています。ブロックはレポートの本文を構成します。これらのブロックには、テキスト、画像、埋め込み可視化、Experiments や run のプロット、パネルグリッドを追加できます。

*パネルグリッド* は、パネルと *run set* を保持する特定の種類のブロックです。Run set は、W\&B のプロジェクトにログされた runs のコレクションです。パネルは run set データを可視化したものです。

<Note>
  保存済みの Workspace view を作成してカスタマイズする方法を step ごとに示した例については、[Programmatic workspaces notebook](https://colab.research.google.com/github/wandb/wandb-workspaces/blob/Update-wandb-workspaces-tuturial/Workspace_tutorial.ipynb) を参照してください。
</Note>

<Note>
  レポートをプログラムから編集する場合は、W\&B Python SDK に加えて W\&B Report and Workspace API `wandb-workspaces` もインストールされていることを確認してください。

  ```pip theme={null}
  pip install wandb wandb-workspaces
  ```
</Note>

<div id="add-plots">
  ## プロットを追加
</div>

各パネルグリッドには、一連の run set と一連のパネルがあります。セクションの下部にある run set は、グリッド内の各パネルに表示されるデータを制御します。別の run set からデータを取得するグラフを追加したい場合は、新しいパネルグリッドを作成します。

<Tabs>
  <Tab title="W&B App">
    レポート内でスラッシュ (`/`) を入力すると、ドロップダウンメニューが表示されます。**Add panel** を選択してパネルを追加します。折れ線グラフ、散布図、平行座標プロットなど、W\&B でサポートされている任意のパネルを追加できます。

    <Frame>
      <img src="https://mintcdn.com/wb-21fd5541-update-reference-docs-40/ZXlHoV84idQQfL7x/images/reports/demo_report_add_panel_grid.gif?s=23a47aeac23aa7cfd5aca0c704c49623" alt="レポートにグラフを追加" width="1652" height="1498" data-path="images/reports/demo_report_add_panel_grid.gif" />
    </Frame>
  </Tab>

  <Tab title="Report and Workspace API">
    SDK を使用すると、プログラムからレポートにプロットを追加できます。1 つ以上のプロットまたはグラフオブジェクトのリストを、`PanelGrid` Public API Class の `panels` パラメーターに渡します。プロットまたはグラフオブジェクトは、対応する Python Class を使って作成します。

    以下の例は、折れ線グラフと散布図を作成する方法を示しています。

    ```python theme={null}
    import wandb
    import wandb_workspaces.reports.v2 as wr

    report = wr.Report(
        project="report-editing",
        title="An amazing title",
        description="A descriptive description.",
    )

    blocks = [
        wr.PanelGrid(
            panels=[
                wr.LinePlot(x="time", y="velocity"),
                wr.ScatterPlot(x="time", y="acceleration"),
            ]
        )
    ]

    report.blocks = blocks
    report.save()
    ```

    プログラムからレポートに追加できるプロットやグラフの詳細については、`wr.panels` を参照してください。
  </Tab>
</Tabs>

<div id="add-run-sets">
  ## run set を追加する
</div>

App UI または W\&B SDK を使用して、プロジェクトからインタラクティブに run set を追加します。

<Tabs>
  <Tab title="W&B App">
    レポートでスラッシュ (`/`) を入力すると、ドロップダウンメニューが表示されます。ドロップダウンから **Panel Grid** を選択します。これにより、レポートの作成元のプロジェクトから run set が自動的に import されます。

    パネルをレポートに import すると、run 名はプロジェクトから引き継がれます。レポートでは、必要に応じて [run の名前を変更](/ja/models/runs/#rename-a-run) し、閲覧者により多くのコンテキストを提供できます。run 名が変更されるのは、その個別のパネル内だけです。同じレポート内でそのパネルを複製した場合、複製先のパネルでも run 名が変更されます。

    1. レポートで鉛筆アイコンをクリックして、レポートエディタを開きます。

    2. run set で、名前を変更する run を検索します。レポート名にカーソルを合わせ、**action (<Icon icon="ellipsis-vertical" iconType="solid" />)** メニューをクリックします。次のいずれかを選択し、フォームを送信します。

       * **プロジェクトの run 名を変更**: プロジェクト全体で run 名を変更します。新しいランダム名を生成するには、このフィールドを空欄のままにします。
       * **Panel Grid の run 名を変更**: run 名をレポート内でのみ変更し、他のコンテキストでは既存の名前を保持します。新しいランダム名の生成はサポートされていません。

    3. **レポートを公開** をクリックします。
  </Tab>

  <Tab title="Report and Workspace API">
    `wr.Runset()` および `wr.PanelGrid` クラスを使用して、プロジェクトから run set を追加します。以下の手順では、runset を追加する方法を説明します。

    1. `wr.Runset()` オブジェクトのインスタンスを作成します。project パラメーターには run set を含むプロジェクトの名を指定し、entity パラメーターにはそのプロジェクトを所有する entity を指定します。
    2. `wr.PanelGrid()` オブジェクトのインスタンスを作成します。1 つ以上の runset オブジェクトの list を `run sets` パラメーターに渡します。
    3. 1 つ以上の `wr.PanelGrid()` オブジェクトのインスタンスを list に格納します。
    4. レポートインスタンスの blocks 属性を、panel grid インスタンスの list で更新します。

    ```python theme={null}
    import wandb
    import wandb_workspaces.reports.v2 as wr

    report = wr.Report(
        project="report-editing",
        title="An amazing title",
        description="A descriptive description.",
    )

    panel_grids = wr.PanelGrid(
        runsets=[wr.RunSet(project="<project-name>", entity="<entity-name>")]
    )

    report.blocks = [panel_grids]
    report.save()
    ```

    必要に応じて、SDK への 1 回の call で runset とパネルを追加することもできます。

    ```python theme={null}
    import wandb

    report = wr.Report(
        project="report-editing",
        title="An amazing title",
        description="A descriptive description.",
    )

    panel_grids = wr.PanelGrid(
        panels=[
            wr.LinePlot(
                title="line title",
                x="x",
                y=["y"],
                range_x=[0, 100],
                range_y=[0, 100],
                log_x=True,
                log_y=True,
                title_x="x axis title",
                title_y="y axis title",
                ignore_outliers=True,
                groupby="hyperparam1",
                groupby_aggfunc="mean",
                groupby_rangefunc="minmax",
                smoothing_factor=0.5,
                smoothing_type="gaussian",
                smoothing_show_original=True,
                max_runs_to_show=10,
                plot_type="stacked-area",
                font_size="large",
                legend_position="west",
            ),
            wr.ScatterPlot(
                title="scatter title",
                x="y",
                y="y",
                # z='x',
                range_x=[0, 0.0005],
                range_y=[0, 0.0005],
                # range_z=[0,1],
                log_x=False,
                log_y=False,
                # log_z=True,
                running_ymin=True,
                running_ymean=True,
                running_ymax=True,
                font_size="small",
                regression=True,
            ),
        ],
        runsets=[wr.RunSet(project="<project-name>", entity="<entity-name>")],
    )


    report.blocks = [panel_grids]
    report.save()
    ```
  </Tab>
</Tabs>

<div id="freeze-a-run-set">
  ## run set を固定する
</div>

レポートでは、プロジェクトの最新データが表示されるよう、run set が自動的に更新されます。run set を*固定*すると、レポート内のその run set を保持できます。run set を固定すると、レポート内の run set の状態がその時点のものとして保持されます。

レポートの表示中に run set を固定するには、パネルグリッド内の **Filter** ボタンの近くにある雪の結晶アイコンをクリックします。

<Frame>
  <img src="https://mintcdn.com/wb-21fd5541-update-reference-docs-40/ZXlHoV84idQQfL7x/images/reports/freeze_runset.png?fit=max&auto=format&n=ZXlHoV84idQQfL7x&q=85&s=b5f7dda05ef61ca9f00c037a40e6021d" alt="run set を固定するボタン" width="1799" height="552" data-path="images/reports/freeze_runset.png" />
</Frame>

<div id="group-a-run-set-programmatically">
  ## プログラムで run set をグループ化する
</div>

[Workspace and Reports API](/ja/models/ref/wandb_workspaces/reports) を使用して、run set 内の runs をプログラムでグループ化できます。

run set 内の runs は、設定値、run メタデータ、または summary メトリクスでグループ化できます。次の表は、利用可能なグループ化 method と、その method で利用可能なキーを示しています。

| グループ化 method  | 説明                           | 利用可能なキー                                     |
| ------------- | ---------------------------- | ------------------------------------------- |
| 設定値           | 設定値で runs をグループ化する           | `wandb.init(config=)` の config パラメーターで指定した値 |
| Run メタデータ     | run メタデータで runs をグループ化する     | `State`, `Name`, `JobType`                  |
| Summary メトリクス | summary メトリクスで runs をグループ化する | `wandb.Run.log()` で run にログした値              |

<div id="group-runs-by-config-values">
  ### 設定値で run をグループ化する
</div>

類似した設定の run を比較するには、設定値で run をグループ化します。設定値は、run の設定 `(wandb.init(config=))` で指定するパラメーターです。設定値で run をグループ化するには、`config.<key>` 構文を使用します。ここで、`<key>` はグループ化に使う設定値の名です。

たとえば、次のコードスニペットでは、まず `group` の設定値を指定して run を初期化し、その後 `group` 設定値に基づいて report 内の run をグループ化します。`<entity>` と `<project>` の値は、ご使用の W\&B entity 名およびプロジェクト名に置き換えてください。

```python theme={null}
import wandb
import wandb_workspaces.reports.v2 as wr

entity = "<entity>"
project = "<project>"

for group in ["control", "experiment_a", "experiment_b"]:
    for i in range(3):
        with wandb.init(entity=entity, project=project, group=group, config={"group": group, "run": i}, name=f"{group}_run_{i}") as run:
            # トレーニングをシミュレーションする
            for step in range(100):
                run.log({
                    "acc": 0.5 + (step / 100) * 0.3 + (i * 0.05),
                    "loss": 1.0 - (step / 100) * 0.5
                })
```

その後、Pythonスクリプトまたはノートブック内で、`config.group` の値で run をグループ化できます。

```python theme={null}
runset = wr.Runset(
  project=project,
  entity=entity,
  groupby=["config.group"]  # "group" 設定値でグループ化
)
```

前の例に続き、グループ化した run set を使ってレポートを作成できます。

```python theme={null}
report = wr.Report(
  entity=entity,
  project=project,
  title="Grouped Runs Example",
)

report.blocks = [
  wr.PanelGrid(
      runsets=[runset],
          )
      ]

report.save()
```

<div id="group-runs-by-run-metadata">
  ### run のメタデータで run をグループ化する
</div>

run は、run の名 (`Name`)、状態 (`State`)、またはジョブタイプ (`JobType`) でグループ化できます。

前の例に続いて、以下のコードを使うと、名で run をグループ化できます:

```python theme={null}
runset = wr.Runset(
  project=project,
  entity=entity,
  groupby=["Name"]  # run 名ごとにグループ化
)
```

<Note>
  run の名前は、`wandb.init(name=)` パラメーターで指定した名前です。名前を指定しない場合、W\&B が run にランダムな名前を生成します。

  run の名前は、W\&B App の run の **Overview** ページ、または `Api.runs().run.name` を使ってプログラムから確認できます。
</Note>

<div id="group-runs-by-summary-metrics">
  ### サマリー メトリクスで run をグループ化する
</div>

以下の例では、サマリー メトリクスで run をグループ化する方法を示します。サマリー メトリクスとは、`wandb.Run.log()` を使って run にログする値です。run をログした後、サマリー メトリクスの名は、W\&B App の run の **Overview** ページにある **Summary** セクションで確認できます。

サマリー メトリクスで run をグループ化する構文は `summary.<key>` です。ここで `<key>` は、グループ化に使用するサマリー メトリクスの名です。

たとえば、`acc` というサマリー メトリクスをログするとします。

```python theme={null}
import wandb
import wandb_workspaces.reports.v2 as wr

entity = "<entity>"
project = "<project>"

for group in ["control", "experiment_a", "experiment_b"]:
    for i in range(3):
        with wandb.init(entity=entity, project=project, group=group, config={"group": group, "run": i}, name=f"{group}_run_{i}") as run:
            # トレーニングをシミュレート
            for step in range(100):
                run.log({
                    "acc": 0.5 + (step / 100) * 0.3 + (i * 0.05),
                    "loss": 1.0 - (step / 100) * 0.5
                })

```

次に、`summary.acc` のサマリー メトリクスで run をグループ化できます:

```python theme={null}
runset = wr.Runset(
  project=project,
  entity=entity,
  groupby=["summary.acc"]  # サマリー値でグループ化 
)
```

<div id="filter-a-run-set-programmatically">
  ## run セットをプログラムでフィルタリングする
</div>

[Workspace と Reports API](/ja/models/ref/wandb_workspaces/reports) を使用して、run セットをプログラムでフィルタリングし、レポートに追加できます。

フィルター式の一般的な構文は次のとおりです。

```text theme={null}
Filter('key') operation <value>
```

ここで、`key` はフィルター名、`operation` は比較演算子 (例: `>`, `<`, `==`, `in`, `not in`, `or`, `and`) 、`<value>` は比較対象の値です。`Filter` は、適用したいフィルターのタイプを表すプレースホルダーです。次の表は、使用可能なフィルターとその説明を示しています。

| Filter                 | Description        | Available keys                                 |
| ---------------------- | ------------------ | ---------------------------------------------- |
| `Config('key')`        | 設定値でフィルターする        | `wandb.init(config=)` の `config` パラメーターで指定した値。 |
| `SummaryMetric('key')` | サマリー メトリクスでフィルターする | `wandb.Run.log()` を使って run にログした値。             |
| `Tags('key')`          | タグでフィルターする         | run に追加したタグの値 (プログラムから、または W\&B App から追加) 。    |
| `Metric('key')`        | run のプロパティでフィルターする | `tags`, `state`, `displayName`, `jobType`      |

フィルターを定義したら、レポートを作成し、フィルターした run set を `wr.PanelGrid(runsets=)` に渡せます。さまざまな要素をプログラムでレポートに追加する方法について詳しくは、このページ内にある **Report and Workspace API** タブを参照してください。

次の例では、レポート内で run set をフィルターする方法を示します。`<>` で囲まれた値は、ご自身の値に置き換えてください。

<div id="config-filters">
  ### 設定フィルター
</div>

1 つ以上の設定値を使って runset をフィルターします。設定値は、run の設定 (`wandb.init(config=)`) で指定するパラメーターです。

たとえば、次のコード例では、まず `learning_rate` と `batch_size` の設定値を指定して run を初期化し、その後 `learning_rate` の設定値に基づいてレポート内の run をフィルターします。

```python theme={null}
import wandb

config = {
    "learning_rate": 0.01,
    "batch_size": 32,
}

with wandb.init(project="<project>", entity="<entity>", config=config) as run:
    # トレーニングコードをここに記述
    pass
```

Python script または notebook 内で、学習率が `0.01` を超える run をプログラムからフィルターできます。

```python theme={null}
import wandb_workspaces.reports.v2 as wr

runset = wr.Runset(
  entity="<entity>",
  project="<project>",
  filters="Config('learning_rate') > 0.01"
)
```

`and` 演算子を使用して、複数の設定値で絞り込むこともできます：

```python theme={null}
runset = wr.Runset(
  entity="<entity>",
  project="<project>",
  filters="Config('learning_rate') > 0.01 and Config('batch_size') == 32"
)
```

前の例に引き続き、フィルタリングしたrunsetを使用して、次のようにレポートを作成できます。

```python theme={null}
report = wr.Report(
  entity="<entity>",
  project="<project>",
  title="My Report"
)

report.blocks = [
  wr.PanelGrid(
      runsets=[runset],
      panels=[
          wr.LinePlot(
              x="Step",
              y=["accuracy"],
          )
      ]
  )
]

report.save()
```

<div id="metric-filters">
  ### メトリクスフィルター
</div>

run セットを、run のタグ (`tags`)、run の状態 (`state`)、run 名 (`displayName`)、またはジョブ タイプ (`jobType`) に基づいてフィルターします。

<Note>
  `Metric` フィルターでは構文が異なります。値のリストは、そのままリストとして渡します。

  ```text theme={null}
  Metric('key') operation [<value>]
  ```
</Note>

たとえば、次の Python スニペットでは 3 つの run を作成し、それぞれに名前を付けます。

```python theme={null}
import wandb

with wandb.init(project="<project>", entity="<entity>") as run:
    for i in range(3):
        run.name = f"run{i+1}"
        # トレーニングコードをここに記述
        pass
```

レポートの作成時に、表示名で run をフィルタリングできます。たとえば、表示名が `run1`、`run2`、`run3` の run をフィルタリングするには、次のコードを使用できます。

```python theme={null}
runset = wr.Runset(
  entity="<entity>",
  project="<project>",
  filters="Metric('displayName') in ['run1', 'run2', 'run3']"
)
```

<Note>
  run の名前は、W\&B App の run の **Overview** ページ、または `Api.runs().run.name` を使ってプログラムから取得できます。
</Note>

次の例では、run の状態 (`finished`、`crashed`、または `running`) で runset をフィルターする方法を示します：

```python theme={null}
runset = wr.Runset(
  entity="<entity>",
  project="<project>",
  filters="Metric('state') in ['finished']"
)
```

```python theme={null}
runset = wr.Runset(
  entity="<entity>",
  project="<project>",
  filters="Metric('state') not in ['crashed']"
)
```

<div id="summarymetric-filters">
  ### SummaryMetric フィルター
</div>

以下の例では、Summary メトリクスで run set をフィルターする方法を示します。Summary メトリクスは、`wandb.Run.log()` を使って run にログする値です。run をログした後、Summary メトリクスの名は、W\&B App の run の **Overview** ページにある **Summary** セクションで確認できます。

```python theme={null}
runset = wr.Runset(
  entity="<entity>",
  project="<project>",
  filters="SummaryMetric('accuracy') > 0.9"
)
```

```python theme={null}
runset = wr.Runset(
  entity="<entity>",
  project="<project>",
  filters="Metric('state') in ['finished'] and SummaryMetric('train/train_loss') < 0.5"
)
```

<div id="tags-filters">
  ### タグフィルター
</div>

次のコードスニペットは、runs の集合をタグでフィルタリングする方法を示しています。タグは、run に追加する値です (プログラムから、または W\&B App を使って追加できます) 。

```python theme={null}
runset = wr.Runset(
  entity="<entity>",
  project="<project>",
  filters="Tags('training') == 'training'"
)
```

<div id="add-code-blocks">
  ## コードブロックを追加する
</div>

App UI または W\&B SDK を使用して、レポートにインタラクティブにコードブロックを追加できます。

<Tabs>
  <Tab title="App UI">
    レポート内でスラッシュ (`/`) を入力すると、ドロップダウンメニューが表示されます。ドロップダウンから **Code** を選択します。

    コードブロックの右側にあるプログラミング言語名を選択します。するとドロップダウンが展開されます。ドロップダウンから使用するプログラミング言語の構文を選択します。Javascript、Python、CSS、JSON、HTML、Markdown、YAML から選択できます。
  </Tab>

  <Tab title="Report and Workspace API">
    `wr.CodeBlock` クラスを使用して、プログラムからコードブロックを作成します。表示したい言語名とコードを、それぞれ language パラメーターと code パラメーターに指定します。

    たとえば、次の例は YAML ファイル内のリストを示しています。

    ```python theme={null}
    import wandb
    import wandb_workspaces.reports.v2 as wr

    report = wr.Report(project="report-editing")

    report.blocks = [
        wr.CodeBlock(
            code=["this:", "- is", "- a", "cool:", "- yaml", "- file"], language="yaml"
        )
    ]

    report.save()
    ```

    これにより、次のようなコードブロックが表示されます。

    ```yaml theme={null}
    this:
    - is
    - a
    cool:
    - yaml
    - file
    ```

    次の例は Python のコードブロックを示しています。

    ```python theme={null}
    report = wr.Report(project="report-editing")


    report.blocks = [wr.CodeBlock(code=["Hello, World!"], language="python")]

    report.save()
    ```

    これにより、次のようなコードブロックが表示されます。

    ```md theme={null}
    Hello, World!
    ```
  </Tab>
</Tabs>

<div id="add-markdown">
  ## Markdown を追加する
</div>

App UI または W\&B SDK を使用して、レポートにインタラクティブに Markdown を追加できます。

<Tabs>
  <Tab title="App UI">
    レポート内でスラッシュ (`/`) を入力すると、ドロップダウンメニューが表示されます。ドロップダウンから **Markdown** を選択します。
  </Tab>

  <Tab title="Report and Workspace API">
    `wandb.apis.reports.MarkdownBlock` クラスを使用して、プログラムから Markdown ブロックを作成します。`text` パラメーターに文字列を渡します。

    ```python theme={null}
    import wandb
    import wandb_workspaces.reports.v2 as wr

    report = wr.Report(project="report-editing")

    report.blocks = [
        wr.MarkdownBlock(text="Markdown cell with *italics* and **bold** and $e=mc^2$")
    ]
    ```

    これにより、次のような Markdown ブロックが表示されます。

    <Frame>
      <img src="https://mintcdn.com/wb-21fd5541-update-reference-docs-40/ZXlHoV84idQQfL7x/images/reports/markdown.png?fit=max&auto=format&n=ZXlHoV84idQQfL7x&q=85&s=4d6eb0948589282dfcc9fab3da581b37" alt="表示された Markdown ブロック" width="1000" height="178" data-path="images/reports/markdown.png" />
    </Frame>
  </Tab>
</Tabs>

<div id="add-html-elements">
  ## HTML 要素を追加する
</div>

App UI または W\&B SDK を使用して、レポートに HTML 要素をインタラクティブに追加します。

<Tabs>
  <Tab title="App UI">
    レポート内でスラッシュ (`/`) を入力すると、ドロップダウンメニューが表示されます。ドロップダウンからテキストブロックのタイプを選択します。たとえば、H2 の見出しブロックを作成するには、`Heading 2` オプションを選択します。
  </Tab>

  <Tab title="Report and Workspace API">
    1 つ以上の HTML 要素を含むリストを `wandb.apis.reports.blocks` 属性に渡します。次の例は、H1、H2、および順序なしリストを作成する方法を示しています。

    ```python theme={null}
    import wandb
    import wandb_workspaces.reports.v2 as wr

    report = wr.Report(project="report-editing")

    report.blocks = [
        wr.H1(text="How Programmatic Reports work"),
        wr.H2(text="Heading 2"),
        wr.UnorderedList(items=["Bullet 1", "Bullet 2"]),
    ]

    report.save()
    ```

    これにより、HTML 要素が次のように表示されます。

    <Frame>
      <img src="https://mintcdn.com/wb-21fd5541-update-reference-docs-40/ZXlHoV84idQQfL7x/images/reports/render_html.png?fit=max&auto=format&n=ZXlHoV84idQQfL7x&q=85&s=3f1b1ee58e4b5a88ad4d6634b183884a" alt="表示された HTML 要素" width="1410" height="426" data-path="images/reports/render_html.png" />
    </Frame>
  </Tab>
</Tabs>

<div id="embed-rich-media-links">
  ## リッチメディアのリンクを埋め込む
</div>

App UI または W\&B SDK を使用して、レポート内にリッチメディアを埋め込みます。

<Tabs>
  <Tab title="App UI">
    URL を Reports にコピー＆ペーストして、レポート内にリッチメディアを埋め込みます。以下のアニメーションは、Twitter、YouTube、SoundCloud から URL をコピー＆ペーストする方法を示しています。

    ### Twitter

    Tweet のリンク URL をレポートにコピー＆ペーストすると、その Tweet をレポート内に表示できます。

    <Frame>
      <img src="https://mintcdn.com/wb-21fd5541-update-reference-docs-40/ZXlHoV84idQQfL7x/images/reports/twitter.gif?s=137ddd3c2e6f6f901bab55ec88c193f4" alt="Twitter コンテンツの埋め込み" width="810" height="760" data-path="images/reports/twitter.gif" />
    </Frame>

    ### Youtube

    YouTube の動画 URL リンクをコピー＆ペーストして、レポートに動画を埋め込みます。

    <Frame>
      <img src="https://mintcdn.com/wb-21fd5541-update-reference-docs-40/ZXlHoV84idQQfL7x/images/reports/youtube.gif?s=3a847ac8f6327b6fd76693f1db9c5bbc" alt="YouTube 動画の埋め込み" width="1434" height="780" data-path="images/reports/youtube.gif" />
    </Frame>

    ### SoundCloud

    SoundCloud のリンクをコピー＆ペーストして、オーディオファイルをレポートに埋め込みます。

    <Frame>
      <img src="https://mintcdn.com/wb-21fd5541-update-reference-docs-40/ZXlHoV84idQQfL7x/images/reports/soundcloud.gif?s=d14156ad54a405fe1860643ccef42c6b" alt="SoundCloud オーディオの埋め込み" width="1018" height="684" data-path="images/reports/soundcloud.gif" />
    </Frame>
  </Tab>

  <Tab title="Report and Workspace API">
    1 つ以上の埋め込みメディア object からなる list を `wandb.apis.reports.blocks` 属性に渡します。次の例は、動画と Twitter メディアをレポートに埋め込む方法を示しています。

    ```python theme={null}
    import wandb
    import wandb_workspaces.reports.v2 as wr

    report = wr.Report(project="report-editing")

    report.blocks = [
        wr.Video(url="https://www.youtube.com/embed/6riDJMI-Y8U"),
        wr.Twitter(
            embed_html='<blockquote class="twitter-tweet"><p lang="en" dir="ltr">The voice of an angel, truly. <a href="https://twitter.com/hashtag/MassEffect?src=hash&amp;ref_src=twsrc%5Etfw">#MassEffect</a> <a href="https://t.co/nMev97Uw7F">pic.twitter.com/nMev97Uw7F</a></p>&mdash; Mass Effect (@masseffect) <a href="https://twitter.com/masseffect/status/1428748886655569924?ref_src=twsrc%5Etfw">August 20, 2021</a></blockquote>\n'
        ),
    ]
    report.save()
    ```
  </Tab>
</Tabs>

<div id="duplicate-and-delete-panel-grids">
  ## パネルグリッドを複製・削除する
</div>

再利用したいLayoutがある場合は、パネルグリッドを選択してコピー＆ペーストすることで、同じReports内で複製したり、別のReportsに貼り付けたりできます。

右上のドラッグハンドルを選択すると、パネルグリッドのセクション全体を選択できます。クリックしてドラッグすると、パネルグリッド、テキスト、見出しなど、Reports内の領域を選択できます。

<Frame>
  <img src="https://mintcdn.com/wb-21fd5541-update-reference-docs-40/ZXlHoV84idQQfL7x/images/reports/demo_copy_and_paste_a_panel_grid_section.gif?s=a58dd04d0daf6cf298e4ba922e780f29" alt="パネルグリッドをコピーする" width="1684" height="1226" data-path="images/reports/demo_copy_and_paste_a_panel_grid_section.gif" />
</Frame>

パネルグリッドを選択し、キーボードの`delete`キーを押すと、パネルグリッドを削除できます。

<Frame>
  <img src="https://mintcdn.com/wb-21fd5541-update-reference-docs-40/ZXlHoV84idQQfL7x/images/reports/delete_panel_grid.gif?s=decbb57f844e6077624e073c0ad600cc" alt="パネルグリッドを削除する" width="1425" height="670" data-path="images/reports/delete_panel_grid.gif" />
</Frame>

<div id="collapse-headers-to-organize-reports">
  ## ヘッダーを折りたたんでReportsを整理する
</div>

レポートでは、ヘッダーを折りたたむことでテキストブロック内のコンテンツを非表示にできます。レポートの読み込み時には、展開されているヘッダーのコンテンツのみが表示されます。レポート内でヘッダーを折りたたむと、コンテンツを整理しやすくなり、不要なデータの読み込みを抑えられます。次のgifは、この手順を示しています。

<Frame>
  <img src="https://mintcdn.com/wb-21fd5541-update-reference-docs-40/ZXlHoV84idQQfL7x/images/reports/collapse_headers.gif?s=483abb39a856ffb656730f47c3588bab" alt="レポート内でヘッダーを折りたたむ。" width="1425" height="670" data-path="images/reports/collapse_headers.gif" />
</Frame>

<div id="visualize-relationships-across-multiple-dimensions">
  ## 複数の次元間の関係を可視化する
</div>

複数の次元間の関係を効果的に可視化するには、色のグラデーションを使用して変数の1つを表します。これにより視認性が高まり、パターンをより簡単に読み取れるようになります。

1. 色のグラデーションで表す変数を1つ選択します (例: penalty scores、learning rates など) 。これにより、トレーニング時間 (x-axis) に沿って、penalty (色) が reward/side effects (y-axis) とどのように関係するかを、より明確に把握できます。
2. 主要な傾向を強調表示します。特定の run グループにカーソルを合わせると、可視化内でそのグループが強調表示されます。
