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

# 折れ線グラフのリファレンス

> x軸、y軸、スムージング、集約、グループ化オプションなど、ラインプロットパネルの設定に関するリファレンス。

このページでは、折れ線グラフの設定について詳しく説明します。折れ線グラフの操作の詳細については、[Line plots overview](/ja/models/app/features/panels/line-plot)を参照してください.

<div id="data-settings">
  ## データ設定
</div>

データ設定では、プロットに表示されるメトリクスや、データポイントのサンプリング、平滑化、集計の方法を制御します。

<div id="x-axis">
  ### X軸
</div>

<Frame>
  <img src="https://mintcdn.com/wb-21fd5541-docs-sandboxes-integrations-placement/hS4tNv5jzsGoCezc/images/app_ui/reference_x_axis.png?fit=max&auto=format&n=hS4tNv5jzsGoCezc&q=85&s=d81b3182ecc3c99b5901c84224c7cd1c" alt="X軸の選択" width="3826" height="1434" data-path="images/app_ui/reference_x_axis.png" />
</Frame>

X軸の範囲は、`wandb.Run.log()` でログした任意の整数値または浮動小数点値に設定できます。

利用可能な時間ベースの X軸 オプション:

* **Step**: `wandb.Run.log()` が呼び出されるたびに増加します。モデルからログされたトレーニング step 数を反映します。 (デフォルト)
* **Relative Time (Wall)**: プロセスの開始からの経過時間です。run を開始して 1 日間一時停止し、その後再開してログすると、その時点は 24 時間として表示されます。
* **Relative Time (Process)**: 実行中のプロセス内での経過時間です。run を開始して 10 秒間実行し、1 日間一時停止してから再開すると、その時点は 10 秒として表示されます。
* **Wall Time**: グラフ上の最初の run の開始から経過した分数です。
* **X range**: デフォルトでは、X軸の最小値から最大値までが使用されます。最小値と最大値はカスタマイズできます.

<div id="y-axis">
  ### Y軸
</div>

Y軸の変数には、`wandb.Run.log()`でログした任意の整数値または浮動小数点値を設定できます。単一の値、値の配列、または値のヒストグラムを指定します。ある変数で 1,500 個を超えるデータ点をログした場合、W\&B は 1,500 点までサンプリングします。

<Note>
  Runs table で run の色を変更すると、Y軸の線の色をカスタマイズできます。
</Note>

**Y range** オプションのデフォルトは、メトリクスの最小の正の値 (0 を含む) からメトリクスの最大値までの範囲です。最小値と最大値はカスタマイズできます。

<div id="point-aggregation-method">
  ### ポイント集約の method
</div>

データポイントの表示に使用するサンプリングモードを選択します。

* **ランダムサンプリング** (デフォルト) : [ランダムサンプリング](/ja/models/app/features/panels/line-plot/sampling/#random-sampling)を参照してください。
* **フルフィデリティ**: [フルフィデリティ](/ja/models/app/features/panels/line-plot/sampling/#full-fidelity)を参照してください。

<div id="smoothing">
  ### スムージング
</div>

[スムージング係数](/ja/support/models/articles/what-formula-do-you-use-for-your-smoothi) を 0 から 1 の間で設定します。0 はスムージングなし、1 は最大のスムージングです。

利用可能なスムージング method:

* **時間加重 EMA** (デフォルト) : 以前の点の重みを指数関数的に減衰させることで、時系列データを平滑化する指数移動平均 (EMA) の手法です。
* **移動平均**: 指定した x 値の前後のウィンドウ内にある点の平均値で、その点を置き換えます。
* **ガウシアン**: 点の加重平均を計算します。このとき、重みはガウス分布に従い、標準偏差はスムージングのパラメーターとして指定されます。
* **スムージングなし**

詳細については、[折れ線グラフのスムージング](/ja/models/app/features/panels/line-plot/smoothing)を参照してください。

<div id="ignore-outliers">
  ### 外れ値を無視
</div>

デフォルトのプロットの最小値および最大値のスケールから外れ値を除外するように、プロットのスケールを再調整します。この設定の影響は、プロットのサンプリングモードによって異なります。

* **ランダムサンプリングモード**: 外れ値を無視すると、5% 未満および 95% を超える点はプロットから除外されます。
* **フルフィデリティモード**: 外れ値を無視すると、すべての点が表示され、各 bucket の最後の値まで圧縮されたうえで、5% 未満および 95% を超える領域が網掛け表示されます。

<div id="max-runs-or-groups">
  ### Runs またはグループの最大数
</div>

デフォルトでは、プロットには Runs リストまたは Runs セットの先頭 10 件の Runs または Runs グループのみが表示されます。表示する Runs またはグループを制御するには、並び順を変更します。

<Note>
  Workspace では、設定に関係なく、最大 1,000 件の run までしか表示できません。
</Note>

<div id="chart-type">
  ### チャートタイプ
</div>

プロットスタイルを選択します。

* **折れ線グラフ**
  <Frame>
    <img src="https://mintcdn.com/wb-21fd5541-docs-sandboxes-integrations-placement/hS4tNv5jzsGoCezc/images/app_ui/plot_style_line_plot.png?fit=max&auto=format&n=hS4tNv5jzsGoCezc&q=85&s=05c540219031d22a3c41604ca7304825" alt="折れ線グラフのスタイル" width="964" height="435" data-path="images/app_ui/plot_style_line_plot.png" />
  </Frame>
* **エリアプロット**
  <Frame>
    <img src="https://mintcdn.com/wb-21fd5541-docs-sandboxes-integrations-placement/hS4tNv5jzsGoCezc/images/app_ui/plot_style_area_plot.png?fit=max&auto=format&n=hS4tNv5jzsGoCezc&q=85&s=17903b92e509e9ff78879d681c64169a" alt="エリアプロットのスタイル" width="949" height="420" data-path="images/app_ui/plot_style_area_plot.png" />
  </Frame>
* **パーセンテージエリアプロット**
  <Frame>
    <img src="https://mintcdn.com/wb-21fd5541-docs-sandboxes-integrations-placement/hS4tNv5jzsGoCezc/images/app_ui/plot_style_percentage_plot.png?fit=max&auto=format&n=hS4tNv5jzsGoCezc&q=85&s=6340d00df92beb0418b1aba94faa0a1d" alt="パーセンテージエリアプロットのスタイル" width="956" height="420" data-path="images/app_ui/plot_style_percentage_plot.png" />
  </Frame>

チャートタイプは **Data** タブで設定します。詳しくは [個別の折れ線グラフ](/ja/models/app/features/panels/line-plot#individual-line-plot) を参照してください。

<div id="grouping-settings">
  ## グループ化設定
</div>

グループ化を有効にすると、すべての Runs を集約できます。また、特定の変数でグループ化することもできます。Runs table でグループ化を有効にすると、グループが自動的にグラフに反映されます。

* **Group runs**: プロットで Runs のグループ化を有効にします。プロットの網掛け範囲を設定するには必須です。
* **Group by**: 必要に応じて column を選択します。その column で同じ値を持つすべての Runs が同じグループにまとめられます。
* **集約**: グラフ上の線の値です。オプションは、グループの平均、中央値、最小値、最大値です。
* **Range**: 高忠実度の折れ線グラフの網掛け領域を設定します。オプションは Min/Max、Std Dev、Std Err、None です。

<div id="chart-settings">
  ## チャート設定
</div>

タイトルと凡例の表示設定を行います。

* **パネルタイトル**: パネル上部に表示されるタイトル。
* **X軸タイトル**: X軸のラベル。
* **Y軸タイトル**: Y軸のラベル。
* **凡例**: 凡例の表示/非表示を切り替え、位置を設定します。

<div id="legend-settings">
  ## 凡例の設定
</div>

凡例をカスタマイズすると、ログされた任意の設定値や、作成日時、そのrunを作成したユーザーなど、runsのメタデータを表示できます。

<div id="legend-template">
  ### 凡例テンプレート
</div>

凡例名のテンプレートを定義します。

1. 歯車アイコンをクリックして、プロットの設定を開きます。
2. **Display preferences** タブに移動します。
3. **Advanced legend** を展開し、凡例テンプレートを指定します。
4. **Apply** をクリックします。

<div id="point-specific-values">
  ### ポイント固有の値
</div>

`[[ ]]` 内に値を設定すると、チャートにカーソルを合わせたときに、クロスヘアにポイント固有の値を表示できます。

1. 歯車アイコンをクリックして、プロットの設定を開きます。
2. **Display preferences** タブに移動します。
3. タブの下部で、プロットの1つ以上のメトリクスに対してポイント固有の値を設定します。
4. **Apply** をクリックします。

`[[ ]]` 内でサポートされる値:

| Value         | 意味                        |
| ------------- | ------------------------- |
| `${x}`        | X 値                       |
| `${y}`        | Y 値 (スムージング調整を含む)         |
| `${original}` | Y 値 (スムージング調整を含まない)       |
| `${mean}`     | グループ化された Runs の平均値        |
| `${stddev}`   | グループ化された Runs の標準偏差       |
| `${min}`      | グループ化された Runs の最小値        |
| `${max}`      | グループ化された Runs の最大値        |
| `${percent}`  | 全体に占める割合 (積み上げエリアチャートの場合) |

<div id="expressions">
  ## 式
</div>

ログしたメトリクス、設定値、サマリー統計を使って、折れ線グラフを作成または変換する数式を記述できます。たとえば、2 つのメトリクスの差を計算したり、設定値を使ってメトリクスを再スケーリングしたり、メトリクスの対数をプロットしたりできます。式は、ログする各 step ごとに評価されます。

以下のセクションでは、式内で値を参照する方法と、カスタム式で使用できる演算子や関数について説明します。折れ線グラフでは、x 軸、y 軸、またはその両方に式を使用できます。

一般的なユースケースと式の例については、[式の例](#example-expressions) を参照してください。

<div id="create-new-line-plots-with-expressions">
  ### 式を使用して新しい折れ線グラフを作成する
</div>

1. project の Workspace にアクセスします。
2. **+ Add panel** ボタンをクリックし、**Line plot** を選択します。
3. **Data** タブをクリックします。X 軸と Y 軸の両方について、折れ線グラフにプロットするデータを選択します。
4. **式** タブをクリックします。
5. **Y 軸** フィールドまたは **X 軸** フィールドに式を入力します。
6. **Apply** をクリックして設定を保存し、折れ線グラフを表示します。

<div id="transform-existing-line-plots-with-expressions">
  ### 式を使って既存の折れ線グラフを変換する
</div>

1. 変換する折れ線グラフを開きます。
2. パネルを編集するには、プロットの右上にある歯車アイコンをクリックします。
3. **式** タブをクリックします。
4. **Y-axis** フィールドまたは **X-axis** フィールドに式を入力します。
5. **Apply** をクリックして設定を保存し、更新後の折れ線グラフを表示します。

<div id="referencing-values">
  ### 値の参照
</div>

次の表では、折れ線グラフの式で、ログされたメトリクス、設定パラメーター、サマリー統計を参照する方法を説明します。

| タイプ      | 構文                     | 説明                                         | 例                                                   |
| -------- | ---------------------- | ------------------------------------------ | --------------------------------------------------- |
| メトリクス    | `${metric_name}`       | ログされたメトリクスを名前で参照します。                       | `${val/accuracy}`, `${"accuracy"}`                  |
| 設定パラメーター | `${config:param_name}` | `${config:}` プレフィックスを使用して設定値を参照します。        | `${config:lr}`, `${config:batch_size}`              |
| サマリー統計   | `${summary:stat_name}` | `${summary:}` プレフィックスを使用してサマリーフィールドを参照します。 | `${summary:final_accuracy}`, `${summary:best_loss}` |

`/`、`-`、スペースなどの特殊文字や空白を含むメトリクス名、設定パラメーター、またはサマリーフィールドを参照する場合は、`${...}` を使用してエスケープします。

たとえば、`val/accuracy` という名前のメトリクスをログした場合は、除算演算子との混同を避けるため、`${val/accuracy}` として参照します。`dropout-rate` という名前の設定パラメーターをログした場合は、`${config:dropout-rate}` として参照します。`best loss` という名前のサマリーフィールドをログした場合は、`${summary:best loss}` として参照します。

<div id="nested-configs">
  #### ネストされた設定
</div>

ドット記法を使用して、次の構文でネストされた設定値にアクセスします。

```javascript theme={null}
${config:parent.child.grandchild}
```

ここで、`parent`、`child`、`grandchild` は、入れ子になった設定ディクショナリのキーです。

たとえば、次のような入れ子のディクショナリを含む設定をログするとします。

```python theme={null}
config = {
    "model": {
        "type": "resnet",
        "layers": 50
    },
    "training": {
        "batch_size": 32,
        "learning_rate": 0.001
    }
}

with wandb.init(project="my-project", config=config) as run:
    ...
```

モデルのタイプは `${config:model.type}` で参照できます。バッチサイズは `${config:training.batch_size}` で参照できます。

別の例として、ネストされた辞書を含む次の設定を考えてみましょう。

```json Config parameters  theme={null}
config:
  optimizer:
    value:
      lr: 0.001
      weight_decay: 0.01
  model:
    value:
      hidden_size: 768
```

学習率は`${config:optimizer.value.lr}`、モデルの隠れサイズは`${config:model.value.hidden_size}`、重み減衰は`${config:optimizer.value.weight_decay}`で参照できます。

<div id="available-operators">
  ### 利用可能な演算子
</div>

W\&B では、折れ線グラフの式で次の演算子をサポートしています。

| カテゴリ  | 演算子                                            |
| ----- | ---------------------------------------------- |
| 算術演算  | `+`, `-`, `*`, `/`, `%` (剰余) , `**` (累乗)       |
| 比較    | `==`, `!=`, `===`, `!==`, `<`, `>`, `<=`, `>=` |
| ビット演算 | `\|`, `^`, `&`, `<<`, `>>`, `>>>`              |
| 論理    | `\|\|`, `&&`                                   |

<div id="math-constants-and-functions">
  ### 数学定数と関数
</div>

JavaScript のすべての数学関数と定数がサポートされています。詳細については、[MDN Math documentation](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Math) を参照してください。以下の表では、折れ線グラフの式でよく使用される関数と定数をまとめています。

<div id="math-constants">
  #### 数学定数
</div>

| 定数        | 説明             |
| --------- | -------------- |
| `e`       | オイラー数          |
| `pi`      | 円周率            |
| `ln2`     | 2 の自然対数        |
| `ln10`    | 10 の自然対数       |
| `log2e`   | e の 2 を底とする対数  |
| `log10e`  | e の 10 を底とする対数 |
| `sqrt2`   | 2 の平方根         |
| `sqrt1_2` | 1/2 の平方根       |

<div id="arithmetic-and-statistical-functions">
  #### 算術関数と統計関数
</div>

次の表に、使用可能な算術関数と統計関数を示します。

| 関数             | 説明                 |
| -------------- | ------------------ |
| abs(x)         | 絶対値                |
| ceil(x)        | 天井関数 (最も近い整数に切り上げ) |
| floor(x)       | 床関数 (最も近い整数に切り下げ)  |
| round(x)       | 最も近い整数に丸める         |
| min(x, y, ...) | 最小値                |
| max(x, y, ...) | 最大値                |
| sqrt(x)        | 平方根                |

<div id="logarithmic-and-exponential-functions">
  #### 対数関数と指数関数
</div>

次の表に、使用できる対数関数と指数関数を示します。

| Function  | Description |
| --------- | ----------- |
| log(x)    | 自然対数 (底 e)  |
| log10(x)  | 常用対数 (底 10) |
| log2(x)   | 底 2 の対数     |
| exp(x)    | 指数関数 (e^x)  |
| pow(x, y) | べき乗関数 (x^y) |

<div id="trigonometric-functions">
  #### 三角関数
</div>

次の表は、使用可能な三角関数を示します。

| 関数          | 説明              |
| ----------- | --------------- |
| sin(x)      | 正弦              |
| cos(x)      | 余弦              |
| tan(x)      | 正接              |
| asin(x)     | アークサイン (逆正弦)    |
| acos(x)     | アークコサイン (逆余弦)   |
| atan(x)     | アークタンジェント (逆正接) |
| atan2(y, x) | 2引数のアークタンジェント   |

<div id="hyperbolic-functions">
  #### 双曲線関数
</div>

次の表に、利用可能な双曲線関数を示します。

| 関数      | 説明    |
| ------- | ----- |
| sinh(x) | 双曲線正弦 |
| cosh(x) | 双曲線余弦 |
| tanh(x) | 双曲線正接 |

<div id="example-expressions">
  ### 式の例
</div>

以下は、折れ線グラフの軸で使用する式の例です。これらはあくまで例示です。前のセクションで説明した演算子と関数を任意に組み合わせて、ニーズに合った複雑な式を作成できます。

以下の例では、[summary metrics](/ja/models/track/log/log-summary#log-summary-metrics) に `accuracy` と `loss` が含まれ、それぞれ次の値を持つものとします。

```json Summary metrics theme={null}
{
  "accuracy": 0.7829240801794489,
  "loss": 0.2194763318905079
}
```

ここで、設定が次のようになっているとします。

```json Config parameters theme={null}
config = {
    "epochs": 100,
    "optimizer": {
        "value": {
            "lr": 0.001,
            "weight_decay": 0.01
        }
    }
}
```

定数を加算して、accuracy メトリクスを縦方向にシフトします。次の例では、accuracy を 1 だけ上方にシフトします。

```javascript theme={null}
1 - accuracy
```

メトリクスを一定の値だけ縦方向にシフトします。ここでは、学習率 (`lr`) を使用します。

```javascript theme={null}
accuracy+${config:optimizer.value.lr}
```

メトリクスの正弦値を計算します。次の例では、損失メトリクスの正弦値を計算します。

```javascript theme={null}
sin(loss)
```

正弦関数を適用して、メトリクスを位相シフトします。たとえば、正弦関数を適用して、損失メトリクスを 2 だけ位相シフトします。

```javascript theme={null}
sin(loss - 2)
```

`batch_size` という名の設定パラメーターを使って、accuracy メトリクスを再スケーリングします。

```javascript theme={null}
${accuracy} / ${config:batch_size}
```

2 つのメトリクスのうち小さい方を計算します。次の例では、損失と精度のうち小さい方を計算します。

```javascript theme={null}
min(loss, accuracy)
```

2つのメトリクスの二乗和の平方根を計算します。次の例では、損失と accuracy の二乗和の平方根を計算します。

```javascript theme={null}
sqrt(loss ** 2 + accuracy ** 2)
```

損失の指数を計算します。次の例では、損失メトリクスの指数を計算します。

```javascript theme={null}
sqrt(loss*100)+sqrt(loss*100000)
```

<Note>
  式では、`${summary:metric_name}` 構文を使用して summary のメトリクス値を参照することもできます。例:

  ```javascript theme={null}
  sqrt(${summary:loss}*100)+sqrt(${summary:loss}*100000)
  ```
</Note>

<div id="multi-metric-panel-expressions">
  ### 複数メトリクスパネルの式
</div>

正規表現を使用すると、複数のメトリクスをまとめて表示する単一の折れ線グラフを作成できます (今後ログされる、パターンに一致するメトリクスも含まれます) 。詳しくは、[折れ線グラフを追加する](/ja/models/app/features/panels/line-plot#multi-metric-line-plot)を参照してください。

例:

* 各レイヤーのメトリクスごとに個別のパネルを作成する代わりに、1 つのパネルにまとめて表示できます。たとえば、`layer_0_loss`、`layer_1_loss`、`layer_2_loss` のように一貫した命名でメトリクスをログする場合は、`layer_\d+_loss` のような正規表現を使用して、すべてのレイヤーの損失を 1 つのプロットに表示できます。
* 共通の命名パターンを持つすべてのメトリクスに一致させることもできます。たとえば:
  * `train_.*` は、`train_loss`、`train_accuracy`、`train_f1_score` など、すべてのトレーニングメトリクスに一致します
  * `.*_accuracy` は、`train_accuracy`、`val_accuracy`、`test_accuracy` のような、異なるデータセットにまたがる精度メトリクスに一致します
* 必要なメトリクスだけに一致させるには、選択を使用します。たとえば、非キャプチャグループ `(?:layer_0|layer_10)_loss` は、途中のレイヤーを除外し、1 番目と 10 番目のレイヤーの損失にのみ一致します。

<div id="capture-groups">
  #### キャプチャグループ
</div>

正規表現内のキャプチャグループによって、複数メトリクスのパネルがどのように作成されるかが決まります。これを想定していないと、この挙動はわかりにくい場合があります。

* **キャプチャグループを使うと複数のパネルが作成される**
  正規表現にキャプチャグループを構成する丸括弧が含まれている場合、UI はそのグループでキャプチャされた各一意の値ごとに個別のパネルを作成します。

  たとえば、式 `(layer_0|layer_10)_loss` にはキャプチャグループが含まれているため、2 つの別々のパネルが作成されます。

  1. `layer_0` に一致するメトリクスのパネル
  2. `layer_10` に一致するメトリクスのパネル

* **非キャプチャグループを使うとメトリクスは同じパネルにまとまる**
  複数の選択肢に一致させつつ別々のパネルを作成したくない場合は、`?:` 構文の非キャプチャグループを使用します。式 `(?:layer_0|layer_10)_loss` は前の例と同じメトリクスに一致しますが、それらを 1 つのパネルにまとめて表示します。

違いは次のとおりです。

* `(layer_0|layer_10)_loss` - レイヤーごとに 1 つずつ、合計 2 つのパネルを作成します。
* `(?:layer_0|layer_10)_loss` - 両方のレイヤーをまとめて表示する 1 つのパネルを作成します。

これにより、分析内容に応じて適切な方法を柔軟に選べます。メトリクスを別々のパネルに分けたい場合はキャプチャグループを使用します。メトリクスを 1 つのプロット上でまとめて比較したい場合は非キャプチャグループを使用します。
