Skip to main content
カスタム チャートを使用すると、W&B が提供するデフォルトにとらわれず、ログしたデータを思いどおりに可視化できます。適合率-再現率曲線、カスタム ヒストグラム、複数の実験の重ね合わせなど、組み込みのパネルでは対応していない関係性、分布、モデル評価メトリクスをプロットしたい場合に使用します。 カスタム チャートは W&B プロジェクトで作成できます。任意のデータの表をログして、思いどおりに可視化しましょう。フォント、色、ツールチップなどの細部は Vega で制御できます。
vega.github.io/vega でサポートされるチャート

仕組み

  1. データをログする: スクリプトから 設定 とサマリーデータをログします。
  2. チャートをカスタマイズする: GraphQL クエリを使って、ログしたデータを取り込みます。クエリの結果は、可視化文法である Vega で可視化します。
  3. チャートをログする: スクリプトから wandb.plot_table() で独自のプリセットを呼び出します。
PR 曲線と ROC 曲線
期待したデータが表示されない場合は、目的の列が選択した run でログされていない可能性があります。チャートを保存して run テーブルに戻り、目 のアイコンで選択中の run を確認してください。

スクリプトからチャートをログする

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

組み込みプリセット

W&B には、スクリプトから直接ログできる組み込みのチャートプリセットがいくつか用意されています。折れ線グラフ、散布図、棒グラフ、ヒストグラム、PR 曲線、ROC 曲線などがあります。
wandb.plot.line()カスタム折れ線グラフをログします。折れ線グラフは、任意の x 軸と y 軸上にある、順序付けられて互いに接続されたポイント (x,y) のリストです。
折れ線グラフは、任意の 2 つの次元で曲線をログします。2 つの値のリストを互いに対してプロットする場合、リスト内の値の数は完全に一致している必要があります (たとえば、各ポイントには x と y の両方が必要です)。
カスタム折れ線グラフ
サンプルの report を参照するか、サンプルの Google Colab ノートブックを試してみてください。

カスタムプリセット

組み込みプリセットを調整するか、新しいプリセットを作成して、チャートを保存します。チャート ID を使用すると、スクリプトから直接そのカスタムプリセットにデータをログできます。Google Colab のサンプルノートブックを試してみてください。
カスタム チャート プリセット

データをログする

カスタム チャートで何かを可視化するには、まずチャートエディターでクエリできる形式で、元となるデータをスクリプトからログしておく必要があります。スクリプトからは以下のデータタイプをログでき、カスタム チャートで使用できます。
  • 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() を呼び出すか、カスタム チャートをログするたびに、その ステップ の履歴に新しい表が作成されます。

カスタム表をログする

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

チャートをカスタマイズする

データをログした後、ログされた値のうちどれを取り込み、どのようにレンダリングするかを選んで、W&B アプリでチャートを作成します。まず新しいカスタム チャートを追加し、クエリを編集して表示中の run からデータを選択します。クエリでは GraphQL を使用して、run の config、summary、history フィールドからデータを取得します。 作成したいチャートを説明して、ARIA にカスタム チャートを作成してもらうこともできます。プロジェクトの Workspace から ARIA を開き、作成したいチャートを説明してください。

GraphQL クエリを作成する

カスタム チャートエディターは、プロジェクトの Workspace または report で選択した run に対して GraphQL クエリを実行します。クエリエディターで必要なフィールドを追加してください。config、summary、history、summaryTable、historyTable から選択できるため、ほとんどの場合、クエリを一から記述する必要はありません。 クエリ内の各ソースは、それぞれ異なるログ済みデータに対応しています。
  • Config は run 設定 の値 (ハイパーパラメーターやその他の設定) を取得します。
  • Summary は summary の値を取得します。デフォルトでは、wandb.Run.log() でログしたキーの summary には、そのキーに最後に書き込まれた値が保持されます。別の集計方法を使用するには、"min"、"max"、"mean"、"best"、"none" のいずれかを指定して wandb.Run.define_metric(..., summary=...) を呼び出します。値を直接設定するには、wandb.Run.summary["key"] = value のように代入します。
  • History は run の履歴からスカラーの時系列 (たとえば、各 ステップ の loss や accuracy) を取得します。最終的な値だけでなく曲線全体が必要な場合は、history を使用します。
  • summaryTable は run の summary から wandb.Table を読み込みます。対象の表が run 上に単一のスナップショットとして保存されている場合 (たとえば、最後に一度だけログする混同行列) に使用します。
  • historyTable は run の履歴から wandb.Table を読み込みます。wandb.Run.log() で表をログするたびに、その表を含む ステップ が run の履歴に追加されます。表が時間とともに変化する場合や、カスタム チャートエディターでステップセレクターを有効にしたい場合は、historyTable を使用します (カスタム チャートでステップスライダーを表示するにはどうすればよいですか? を参照してください)。
summaryTable と historyTable では、tableKey に wandb.Table 内の列名ではなく、wandb.Run.log() 内で使用した辞書のキーを指定します。 一般的なケースの例を以下に示します。
  • 各 ステップ でログする表の列をプロットする場合 (たとえば PR 曲線): historyTable を追加し、tableKey にログしたキー (たとえば pr_curve) を指定してから、Chart fields で表の列をマッピングします。カスタム チャートのチュートリアル を参照してください。
  • summary に保存されている表の列をプロットする場合 (たとえば composite ヒストグラム 用のクラススコア): summaryTable を追加し、tableKey にそのキー (チュートリアルでは class_scores) を指定します。Bonus: composite ヒストグラム を参照してください。
  • トレーニングステップごとのスカラーのメトリクスをプロットする場合: history からメトリクスを追加します。summary からのみ追加すると、チャートには run ごとに 1 つの値しか表示されません。
Chart field 名 クエリの実行後、Chart fields には Vega spec にバインドできる列が一覧表示されます。名前は多くの場合 runSets_ で始まり、選択したクエリフィールドに基づいて決まります。手動で入力せず、各 ${field:...} プレースホルダーの横にあるドロップダウンから選択してください。 列が表示されない場合は、選択した run にそのキーが存在するかを確認してください。また、Run page を開いてデータのログ方法を確かめ、summaryTable と historyTable のどちらがそのログ方法に合っているかを確認してください。 カスタム チャートでは、この GraphQL ベースのパネルクエリを使用します。クエリパネル は別の式言語を使用するため、別のドキュメントで説明しています。
カスタム チャートの作成

カスタム可視化

右上の Chart を選択すると、デフォルトのプリセットから始められます。次に、Chart fields を選択し、クエリで取得したデータをチャートの対応するフィールドにマッピングします。 次の画像は、メトリクスを選択して棒グラフのフィールドにマッピングする方法を示しています。
カスタム棒グラフの作成

Vega を編集する

パネル上部の Edit をクリックすると、Vega の編集モードに切り替わります。ここでは、UI にインタラクティブなチャートを作成する Vega 仕様 を定義できます。チャートのあらゆる要素を変更できます。たとえば、タイトルを変更したり、別の配色を選択したり、曲線を線でつなぐ代わりに一連のポイントとして表示したりできます。また、Vega の transform を使用して値の配列をビンに分割し、ヒストグラムを作成するなど、データ自体に変更を加えることもできます。パネルのプレビューはインタラクティブに更新されるため、Vega spec やクエリを編集しながら変更の結果を確認できます。詳細については、Vega のドキュメントとチュートリアルを参照してください。 フィールド参照 W&B からチャートにデータを取り込むには、Vega spec の任意の場所に "${field:<field-name>}" 形式のテンプレート文字列を追加します。これにより、右側の Chart fields 領域にドロップダウンが追加され、Vega にマッピングするクエリ結果の列を選択できるようになります。 フィールドのデフォルト値を設定するには、次の構文を使用します: "${field:<field-name>:<placeholder text>}"

チャートのプリセットを保存する

プリセットを保存すると、同じ Vega 定義を毎回作り直さなくても、複数のパネルや project で再利用できます。特定の可視化パネルに変更を適用するには、モーダル下部のボタンを使用します。また、Vega spec を保存して、project 内の別の場所で再利用することもできます。再利用可能なチャート定義を保存するには、Vega エディター上部の Save as をクリックし、プリセットに名前を付けます。

Reports とガイド

以下の report では、カスタム チャートの実践的な活用方法について、エンドツーエンドのサンプルやより踏み込んだ解説を紹介しています。

一般的なユースケース

カスタム チャートは、デフォルトのパネルでは表示したい内容を表現できない場合に役立ちます。たとえば、次のような用途があります。
  • エラーバー付きの棒グラフをカスタマイズする
  • 独自の x-y 座標が必要なモデルの検証メトリクス (適合率-再現率曲線など) を表示する
  • 2 つの異なるモデルまたは実験のデータ分布を、ヒストグラムとして重ねて表示する
  • トレーニング中の複数のポイントで取得したスナップショットを使って、メトリクスの推移を表示する
  • W&B にはまだない独自の可視化を作成し、他のユーザーと共有する
最終更新日 2026年9月30日