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

# カスタム チャートの概要

> Vega の可視化機能を使って、W&B プロジェクトでカスタム チャートを作成する

カスタム チャートを使用すると、W\&B が提供するデフォルト以上に、ログしたデータを思いどおりに可視化できます。組み込みパネルでは対応していない、関係性、分布、モデルの評価メトリクスをプロットしたい場合に役立ちます。たとえば、適合率-再現率曲線、カスタムヒストグラム、複数の Experiments の重ね合わせなどです。

W\&B プロジェクトでカスタム チャートを作成できます。任意のデータを表としてログし、思いどおりに可視化できます。[Vega](https://vega.github.io/vega/) を使えば、フォント、色、ツールチップの細部まで制御できます。

* コード: サンプルの [Colab ノートブック](https://tiny.cc/custom-charts)を試してください。
* 動画: [解説動画](https://www.youtube.com/watch?v=3-N9OV6bkSM)をご覧ください。
* 例: Keras と Sklearn のクイック [デモノートブック](https://colab.research.google.com/drive/1g-gNGokPWM2Qbc8p1Gofud0_5AoZdoSD?usp=sharing)。

<Frame>
  <img src="https://mintcdn.com/wb-21fd5541-dbrian-docs-serverless-training-quickstart/ver7AAtIXSa_-khk/images/app_ui/supported_charts.png?fit=max&auto=format&n=ver7AAtIXSa_-khk&q=85&s=6e5864521280de9724f32647a45c8693" alt="vega.github.io/vega でサポートされるチャート" max-width="90%" width="2634" height="588" data-path="images/app_ui/supported_charts.png" />
</Frame>

<div id="how-it-works">
  ## 仕組み
</div>

1. **データをログする**: スクリプトから、[設定](/ja/models/track/config/) と summary データをログします。
2. **チャートをカスタマイズする**: [GraphQL](https://graphql.org) クエリでログしたデータを取得します。[Vega](https://vega.github.io/vega/) という可視化記法を使って、クエリ結果を可視化します。
3. **チャートをログする**: スクリプトから `wandb.plot_table()` を呼び出して、独自のプリセットを使用します。

<Frame>
  <img src="https://mintcdn.com/wb-21fd5541-dbrian-docs-serverless-training-quickstart/ver7AAtIXSa_-khk/images/app_ui/pr_roc.png?fit=max&auto=format&n=ver7AAtIXSa_-khk&q=85&s=a538056bb0824a7bab7b7fea31716646" alt="PR 曲線と ROC 曲線" width="1114" height="422" data-path="images/app_ui/pr_roc.png" />
</Frame>

期待したデータが表示されない場合、探している列が選択した Runs にログされていない可能性があります。チャートを Save し、Runs table に戻って、**eye** アイコンで選択した Runs を確認してください。

<div id="log-charts-from-a-script">
  ## スクリプトからチャートをログする
</div>

以下のセクションでは、トレーニングスクリプトからチャートを直接ログする 2 つの方法について説明します。1 つは一般的な可視化に対応する組み込みのチャートプリセット、もう 1 つは独自の Vega 仕様を再利用できるカスタムプリセットです。

<div id="built-in-presets">
  ### 組み込みプリセット
</div>

W\&B には、スクリプトから直接ログできる組み込みのチャートプリセットがいくつか用意されています。これには、折れ線グラフ、散布図、棒グラフ、ヒストグラム、PR 曲線、ROC 曲線が含まれます。

<Tabs>
  <Tab title="折れ線グラフ">
    `wandb.plot.line()`

    カスタムの折れ線グラフをログします。これは、任意の x 軸と y 軸上の点 (x, y) を順番に結んだプロットです。

    ```python theme={null}
    with wandb.init() as run:
      data = [[x, y] for (x, y) in zip(x_values, y_values)]
      table = wandb.Table(data=data, columns=["x", "y"])
      run.log(
          {
              "my_custom_plot_id": wandb.plot.line(
                  table, "x", "y", title="Custom Y vs X Line Plot"
              )
          }
      )
    ```

    折れ線グラフでは、任意の 2 つの次元に対する曲線をログできます。2 つの値のリストを対応させてプロットする場合は、各リストの値の数が完全に一致している必要があります (たとえば、各点には x と y の両方が必要です) 。

    <Frame>
      <img src="https://mintcdn.com/wb-21fd5541-dbrian-docs-serverless-training-quickstart/ver7AAtIXSa_-khk/images/app_ui/line_plot.png?fit=max&auto=format&n=ver7AAtIXSa_-khk&q=85&s=3e1ab564b9705113ea447b205ca398c0" alt="カスタム折れ線グラフ" width="1930" height="1228" data-path="images/app_ui/line_plot.png" />
    </Frame>

    [レポートの例を見る](https://wandb.ai/wandb/plots/reports/Custom-Line-Plots--VmlldzoyNjk5NTA) または [Google Colab ノートブックの例を試す](https://tiny.cc/custom-charts)。
  </Tab>

  <Tab title="散布プロット">
    `wandb.plot.scatter()`

    カスタムの散布図、つまり任意の 2 軸 x、y 上の点 (x, y) のリストをログします。

    ```python theme={null}
    with wandb.init() as run:
      data = [[x, y] for (x, y) in zip(class_x_prediction_scores, class_y_prediction_scores)]
      table = wandb.Table(data=data, columns=["class_x", "class_y"])
      run.log({"my_custom_id": wandb.plot.scatter(table, "class_x", "class_y")})
    ```

    これを使用すると、任意の2つの次元について散布点をログできます。2つの値のリストを互いにプロットする場合は、リスト内の値の数が完全に一致している必要があることに注意してください (たとえば、各点には x と y の両方が必要です) 。

    <Frame>
      <img src="https://mintcdn.com/wb-21fd5541-dbrian-docs-serverless-training-quickstart/ver7AAtIXSa_-khk/images/app_ui/demo_scatter_plot.png?fit=max&auto=format&n=ver7AAtIXSa_-khk&q=85&s=daf001d1d9e9a04871ed1896f846a357" alt="散布図" width="2194" height="940" data-path="images/app_ui/demo_scatter_plot.png" />
    </Frame>

    [レポートの例を見る](https://wandb.ai/wandb/plots/reports/Custom-Scatter-Plots--VmlldzoyNjk5NDQ) または [Google Colab ノートブックの例を試す](https://tiny.cc/custom-charts)。
  </Tab>

  <Tab title="棒グラフ">
    `wandb.plot.bar()`

    カスタムの棒グラフをログします (ラベル付きの値のリストを棒として表示します)。

    ```python theme={null}
    with wandb.init() as run:
      data = [[label, val] for (label, val) in zip(labels, values)]
      table = wandb.Table(data=data, columns=["label", "value"])
      run.log(
          {
              "my_bar_chart_id": wandb.plot.bar(
                  table, "label", "value", title="Custom Bar Chart"
              )
          }
      )
    ```

    これを使うと、任意の棒グラフをログできます。リスト内のラベルと値の数は完全に一致している必要があることに注意してください (たとえば、各データポイントにはその両方が必要です) 。

    <Frame>
      <img src="https://mintcdn.com/wb-21fd5541-dbrian-docs-serverless-training-quickstart/-UuhgDsvXhu_LnTE/images/app_ui/demo_bar_plot.png?fit=max&auto=format&n=-UuhgDsvXhu_LnTE&q=85&s=b13fd2ff2adacb7dc1dd5c55205bcda9" alt="棒グラフのデモ" width="659" height="579" data-path="images/app_ui/demo_bar_plot.png" />
    </Frame>

    [レポートの例を見る](https://wandb.ai/wandb/plots/reports/Custom-Bar-Charts--VmlldzoyNzExNzk) または [Google Colab ノートブックの例を試す](https://tiny.cc/custom-charts)。
  </Tab>

  <Tab title="ヒストグラム">
    `wandb.plot.histogram()`

    カスタムヒストグラムをログします (値のリストを、出現回数または出現頻度に応じて bins に振り分けます) 。たとえば、予測の信頼度スコアのリスト (`scores`) があり、その分布を可視化したいとします。

    ```python theme={null}
    with wandb.init() as run:
      data = [[s] for s in scores]
      table = wandb.Table(data=data, columns=["scores"])
      run.log({"my_histogram": wandb.plot.histogram(table, "scores", title=None)})
    ```

    これを使うと、任意のヒストグラムをログできます。なお、`data` はリストのリストで、行と列で構成される 2 次元配列を表すことを想定しています。

    <Frame>
      <img src="https://mintcdn.com/wb-21fd5541-dbrian-docs-serverless-training-quickstart/-UuhgDsvXhu_LnTE/images/app_ui/demo_custom_chart_histogram.png?fit=max&auto=format&n=-UuhgDsvXhu_LnTE&q=85&s=2f048306f6e7da4f682d8c359e20e605" alt="カスタムヒストグラム" width="1252" height="558" data-path="images/app_ui/demo_custom_chart_histogram.png" />
    </Frame>

    [レポートの例を見る](https://wandb.ai/wandb/plots/reports/Custom-Histograms--VmlldzoyNzE0NzM) または [Google Colab ノートブックの例を試す](https://tiny.cc/custom-charts)。
  </Tab>

  <Tab title="PR曲線">
    `wandb.plot.pr_curve()`

    1 行で [適合率-再現率曲線](https://scikit-learn.org/stable/modules/generated/sklearn.metrics.precision_recall_curve.html#sklearn.metrics.precision_recall_curve) を作成できます。

    ```python theme={null}
    with wandb.init() as run:
      plot = wandb.plot.pr_curve(ground_truth, predictions, labels=None, classes_to_plot=None)

      run.log({"pr": plot})
    ```

    コードから次の情報にアクセスできる場合は、いつでもこれをログできます:

    * 一連のサンプルに対するモデルの予測スコア (`predictions`)。
    * そのサンプルに対応する正解ラベル (`ground_truth`)。
    * `labels` (任意): ラベル／クラス名のリスト (ラベルのインデックス 0 が cat、1 が dog、2 が bird などを表す場合は `labels=["cat", "dog", "bird"...]`)。
    * `classes_to_plot` (任意): プロットで可視化するラベルのサブセット (リスト形式のまま)。

    <Frame>
      <img src="https://mintcdn.com/wb-21fd5541-dbrian-docs-serverless-training-quickstart/-UuhgDsvXhu_LnTE/images/app_ui/demo_average_precision_lines.png?fit=max&auto=format&n=-UuhgDsvXhu_LnTE&q=85&s=91318d8220c947e6c01b71574b922128" alt="適合率-再現率曲線" width="852" height="441" data-path="images/app_ui/demo_average_precision_lines.png" />
    </Frame>

    [レポートの例を見る](https://wandb.ai/wandb/plots/reports/Plot-Precision-Recall-Curves--VmlldzoyNjk1ODY) または [Google Colab ノートブックの例を試す](https://colab.research.google.com/drive/1mS8ogA3LcZWOXchfJoMrboW3opY1A8BY?usp=sharing)。
  </Tab>

  <Tab title="ROC曲線">
    `wandb.plot.roc_curve()`

    [ROC curve](https://scikit-learn.org/stable/modules/generated/sklearn.metrics.roc_curve.html#sklearn.metrics.roc_curve) を1行で作成します。

    ```python theme={null}
    with wandb.init() as run:
      # ground_truth は正解ラベルのリスト、predictions は予測スコアのリスト
      ground_truth = [0, 1, 0, 1, 0, 1]
      predictions = [0.1, 0.4, 0.35, 0.8, 0.7, 0.9]

      # ROC 曲線プロットを作成する
      # labels はクラス名の任意のリスト、classes_to_plot は可視化するラベルの任意のサブセット
      plot = wandb.plot.roc_curve(
          ground_truth, predictions, labels=None, classes_to_plot=None
      )

      run.log({"roc": plot})
    ```

    コードから次のものにアクセスできる場合は、いつでもこれをログできます:

    * 一連のサンプルに対するモデルの予測スコア (`predictions`)。
    * そのサンプルに対応する正解ラベル (`ground_truth`)。
    * `labels` (任意): ラベル／クラス名のリスト (ラベルインデックス 0 が cat、1 が dog、2 が bird などを表す場合は `labels=["cat", "dog", "bird"...]`)。
    * `classes_to_plot` (任意): プロットに表示する、これらのラベルのサブセット (リスト形式のまま)。

    <Frame>
      <img src="https://mintcdn.com/wb-21fd5541-dbrian-docs-serverless-training-quickstart/-UuhgDsvXhu_LnTE/images/app_ui/demo_custom_chart_roc_curve.png?fit=max&auto=format&n=-UuhgDsvXhu_LnTE&q=85&s=6e141274bca0f19de8f7af1a5b4b1977" alt="ROC curve" width="1338" height="788" data-path="images/app_ui/demo_custom_chart_roc_curve.png" />
    </Frame>

    [レポートの例を見る](https://wandb.ai/wandb/plots/reports/Plot-ROC-Curves--VmlldzoyNjk3MDE) または [Google Colab ノートブックの例を試す](https://colab.research.google.com/drive/1_RMppCqsA8XInV_jhJz32NCZG6Z5t1RO?usp=sharing)。
  </Tab>
</Tabs>

<div id="custom-presets">
  ### カスタムプリセット
</div>

組み込みのプリセットを調整するか、新しいプリセットを作成して、チャートを保存します。チャートIDを使用して、スクリプトから直接そのカスタムプリセットにデータをログできます。[サンプルの Google Colab ノートブックを試す](https://tiny.cc/custom-charts)。

```python theme={null}
# プロットする列を含む表を作成する
table = wandb.Table(data=data, columns=["step", "height"])

# 表の列をチャートのフィールドにマッピングする
fields = {"x": "step", "value": "height"}

# 表を使用して新しいカスタム チャートプリセットにデータを入力する
# 保存済みのカスタム チャートプリセットを使用するには、vega_spec_name を変更する
my_custom_chart = wandb.plot_table(
    vega_spec_name="carey/new_chart",
    data_table=table,
    fields=fields,
)
```

<Frame>
  <img src="https://mintcdn.com/wb-21fd5541-dbrian-docs-serverless-training-quickstart/-UuhgDsvXhu_LnTE/images/app_ui/custom_presets.png?fit=max&auto=format&n=-UuhgDsvXhu_LnTE&q=85&s=efeeba640aaaee7f392cced02ab31a57" alt="カスタムチャートプリセット" max-width="90%" width="2946" height="728" data-path="images/app_ui/custom_presets.png" />
</Frame>

<div id="log-data">
  ## データをログする
</div>

カスタム チャートで何かを可視化する前に、スクリプトはチャートエディタがクエリできる形式で基になるデータをログしている必要があります。スクリプトから次のデータ型をログして、カスタムチャートで使用できます。

* **Config**: 実験の初期設定 (独立変数) です。これには、トレーニング開始時に `wandb.Run.config` にキーとしてログした名前付きフィールドが含まれます。例: `wandb.Run.config.learning_rate = 0.0001`
* **Summary**: トレーニング中にログされた単一の値 (結果または従属変数) です。たとえば、`wandb.Run.log({"val_acc" : 0.8})` です。トレーニング中に `wandb.Run.log()` でこのキーに複数回書き込んだ場合、summary にはそのキーの最後の値が設定されます。
* **History**: ログされたスカラーの完全な時系列は、`history` フィールドを通じてクエリできます
* **summaryTable**: 複数の値のリストをログする必要がある場合は、`wandb.Table()` を使用してそのデータを保存し、その後カスタムパネルでクエリします。
* **historyTable**: 履歴データを確認する必要がある場合は、カスタムチャートパネルで `historyTable` をクエリします。`wandb.Table()` を呼び出すかカスタムチャートをログするたびに、その step の history に新しい表が作成されます。

<div id="log-a-custom-table">
  ### カスタム表をログする
</div>

`wandb.Table()` を使用して、データを二次元配列としてログします。通常、この表の各行は 1 つのデータポイントを表し、各列はプロットしたい各データポイントに関連するフィールドや次元を表します。カスタムパネルを設定すると、表全体には `wandb.Run.log()` に渡した名前付きキー (次の例では `custom_data_table`) でアクセスできます。個々のフィールドには列名 (`x`、`y`、`z`) でアクセスできます。実験全体を通して、複数のタイムステップで表をログできます。各表の最大サイズは 10,000 行です。[Google Colab ノートブックの例を試す](https://tiny.cc/custom-charts)。

```python theme={null}
with wandb.init() as run:
  # カスタムデータ表をログする
  my_custom_data = [[x1, y1, z1], [x2, y2, z2]]
  run.log(
      {"custom_data_table": wandb.Table(data=my_custom_data, columns=["x", "y", "z"])}
  )
```

<div id="customize-the-chart">
  ## チャートをカスタマイズする
</div>

データをログしたら、取り込むログ済みの値とその表示方法を選択して、W\&B Appでチャートを作成します。まず新しいカスタムチャートを追加して開始し、その後クエリを編集して表示中のRunsからデータを選択します。クエリでは、[GraphQL](https://graphql.org)を使用して、Runs内の`config`、`summary`、`history`フィールドからデータを取得します。

<div id="build-the-graphql-query">
  ### GraphQL クエリを作成する
</div>

カスタム チャート エディターは、ワークスペースまたは report で選択した run に対して GraphQL クエリを実行します。クエリ エディターで必要なフィールドを追加してください。`config`、`summary`、`history`、`summaryTable`、`historyTable` から選択できるため、多くの場合、クエリを最初から記述する必要はありません。

クエリ内の各ソースは、それぞれ異なるログ済みデータに対応しています。

* **Config** は、[run 設定](/ja/models/track/config/) の値 (ハイパーパラメーターやその他の設定) を取得します。
* **Summary** は、[summary](/ja/models/track/log/) の値を取得します。デフォルトでは、`wandb.Run.log()` でログしたキーの summary には、そのキーに最後に書き込まれた値が保持されます。別の集計方法を使用するには、`wandb.Run.define_metric(..., summary=...)` を `"min"`、`"max"`、`"mean"`、`"best"`、`"none"` のいずれかとともに呼び出します。値を直接設定するには、`wandb.Run.summary["key"] = value` を代入します。
* **History** は、run 履歴からスカラー時系列を取得します (たとえば、各 step における `loss` や `accuracy`) 。最後の数値だけでなく曲線全体が必要な場合は、**history** を使用してください。
* **`summaryTable`** は、run summary から [`wandb.Table`](/ja/models/ref/python/data-types/table) を読み込みます。対象の表が run に単一のスナップショットとして保存されている場合 (たとえば、最後に一度だけログする混同行列) に使用してください。
* **`historyTable`** は、run 履歴から [`wandb.Table`](/ja/models/ref/python/data-types/table) を読み込みます。`wandb.Run.log()` で表をログするたびに、その表を含む新しい step が run 履歴に追加されます。表が時間とともに変化する場合や、カスタム チャート エディターで step セレクターを有効にしたい場合は、**`historyTable`** を使用してください ([カスタム チャートで step スライダーを表示するにはどうすればよいですか？](/ja/support/models/articles/how-do-you-show-a-step-slider-in-a-custo) を参照してください) 。

**`summaryTable`** と **`historyTable`** では、**`tableKey`** には [`wandb.Table`](/ja/models/ref/python/data-types/table) 内の列名ではなく、`wandb.Run.log()` 内で使用した辞書キーを設定してください。

以下の例は、よくあるケースを示しています。

* 各 step でログした表の列をプロットする場合 (たとえば PR 曲線) : **`historyTable`** を追加し、**`tableKey`** をログしたキー (たとえば `pr_curve`) に設定してから、**Chart fields** で表の列をマッピングします。[カスタム チャート チュートリアル](/ja/models/app/features/custom-charts/walkthrough) を参照してください。
* summary にある表の列をプロットする場合 (たとえば、複合ヒストグラムのクラス スコア) : **`summaryTable`** を追加し、**`tableKey`** をそのキーに設定します (チュートリアルでは `class_scores` を使用しています) 。[おまけ: 複合ヒストグラム](/ja/models/app/features/custom-charts/walkthrough#bonus-composite-histograms) を参照してください。
* トレーニング step に対するスカラー メトリクスをプロットする場合: **history** からそのメトリクスを追加します。**summary** からのみ追加すると、チャートには run ごとに 1 つの値だけが表示されます。

**チャート フィールド名**

クエリの実行後、**Chart fields** には Vega spec にバインドできる列が一覧表示されます。名前は `runSets_` で始まることが多く、選択したクエリ フィールドを反映しています。手入力するのではなく、各 `${field:...}` プレースホルダーの横にあるドロップダウンから選択してください。

列がまったく表示されない場合は、選択した run にそのキーが存在することを確認し、run ページを開いてデータがどのようにログされたかを確認したうえで、**`summaryTable`** と **`historyTable`** のどちらがそのログ パターンに合っているかを確認してください。

カスタム チャートでは、この GraphQL ベースのパネル クエリを使用します。[Query panels](/ja/models/app/features/panels/query-panels) では別の式言語を使用しており、ドキュメントも分かれています。

<Frame>
  <img src="https://mintcdn.com/wb-21fd5541-dbrian-docs-serverless-training-quickstart/-UuhgDsvXhu_LnTE/images/app_ui/customize_chart.gif?s=48a22ce122431afa6d5f586d944987ea" alt="カスタム チャートの作成" max-width="90%" width="1942" height="1334" data-path="images/app_ui/customize_chart.gif" />
</Frame>

<div id="custom-visualizations">
  ### カスタム可視化
</div>

右上の **Chart** を選択して、デフォルトのプリセットから始めます。次に、**Chart fields** を選択し、クエリで取得したデータをチャート内の対応するフィールドにマッピングします。

次の画像は、メトリクスを選択してから、それを棒グラフのフィールドにマッピングする方法を示しています。

<Frame>
  <img src="https://mintcdn.com/wb-21fd5541-dbrian-docs-serverless-training-quickstart/-UuhgDsvXhu_LnTE/images/app_ui/demo_make_a_custom_chart_bar_chart.gif?s=c94a91936b9294e9bfd26460125f8b89" alt="カスタム棒グラフの作成" max-width="90%" width="2804" height="1588" data-path="images/app_ui/demo_make_a_custom_chart_bar_chart.gif" />
</Frame>

<div id="edit-vega">
  ### Vega を編集
</div>

パネル上部の **Edit** をクリックすると、[Vega](https://vega.github.io/vega/) の編集モードに入ります。ここでは、UI 上でインタラクティブなチャートを作成するための [Vega specification](https://vega.github.io/vega/docs/specification/) を定義できます。チャートのあらゆる要素を変更できます。たとえば、タイトルを変更したり、別の配色を選んだり、曲線を連続した線ではなく点の列として表示したりできます。また、Vega の transform を使って値の配列をビニングし、ヒストグラムにするなど、データ自体を変更することもできます。パネルのプレビューはインタラクティブに更新されるため、Vega spec やクエリを編集しながら、変更の効果を確認できます。詳細は、[Vega documentation and tutorials](https://vega.github.io/vega/)を参照してください。

**フィールド参照**

W\&B からチャートにデータを取り込むには、`"${field:<field-name>}"` 形式のテンプレート文字列を Vega spec 内の任意の場所に追加します。これにより、右側の **Chart fields** 領域にドロップダウンが作成され、Vega にマッピングするクエリ結果の列を選択できます。

フィールドのデフォルト値を設定するには、次の構文を使用します: `"${field:<field-name>:<placeholder text>}"`

<div id="save-chart-presets">
  ### チャートプリセットを保存する
</div>

毎回作り直す代わりに、プリセットを保存すると、同じ Vega 定義をパネルや Projects 間で再利用できます。モーダルの下部にあるボタンを使って、特定の可視化パネルに変更を適用できます。あるいは、Vega spec を保存して、プロジェクト内の別の場所で再利用することもできます。再利用可能なチャート定義を保存するには、Vega エディタ上部の **名前を付けて保存** をクリックし、プリセットに名前を付けます。

<div id="reports-and-guides">
  ## Reports とガイド
</div>

以下のReportsでは、エンドツーエンドの例と、実際のカスタムチャートをより深く掘り下げた内容を紹介しています。

* [W\&Bの機械学習可視化IDE](https://wandb.ai/wandb/posts/reports/The-W-B-Machine-Learning-Visualization-IDE--VmlldzoyNjk3Nzg)
* [カスタムチャートを使ってNLPのAttentionベースモデルを可視化する](https://wandb.ai/kylegoyette/gradientsandtranslation2/reports/Visualizing-NLP-Attention-Based-Models-Using-Custom-Charts--VmlldzoyNjg2MjM)
* [カスタムチャートを使ってAttentionが勾配フローに与える影響を可視化する](https://wandb.ai/kylegoyette/gradientsandtranslation/reports/Visualizing-The-Effect-of-Attention-on-Gradient-Flow-Using-Custom-Charts--VmlldzoyNjg1NDg)
* [任意の曲線をログする](https://wandb.ai/stacey/presets/reports/Logging-Arbitrary-Curves--VmlldzoyNzQyMzA)

<div id="common-use-cases">
  ## 一般的なユース ケース
</div>

カスタム チャートは、デフォルトのパネルでは表現できない内容を表示したい場合に便利です。たとえば、次のようなケースがあります。

* エラーバー付きの棒グラフをカスタマイズする
* カスタムの x-y 座標が必要なモデルの検証メトリクス (適合率-再現率曲線など) を表示する
* 2 つの異なるモデルや experiment のデータ分布をヒストグラムとして重ねて表示する
* トレーニング中の複数の時点のスナップショットを使って、メトリクスの変化を表示する
* W\&B でまだ利用できない独自の可視化を作成して、他のユーザーと共有する
